def METHOD_NAME(rec: FcmRecord):
    user_obj = json.loads(rec.key_values["users"])
    notification_data = json.loads(rec.key_values["notification_event_data"])
    sender = f"{user_obj['sender']['screen_name']} ({user_obj['sender']['id']})"
    recipient = f"{user_obj['recipient']['screen_name']} ({user_obj['recipient']['id']})"
    timestamp = unix_ms(int(notification_data["message"]["message_data"]["time"]))
    text = notification_data["message"]["message_data"]["text"]
    conversation_key = tuple([user_obj['sender']['id'], user_obj['recipient']['id']])
    other_party = user_obj['sender']
    entities = []
    if "entities" in notification_data["message"]["message_data"]:
        entity_details = notification_data["message"]["message_data"]["entities"]
        hash_tags = entity_details.get("hashtags")
        symbols = entity_details.get("symbols")
        user_mentions = entity_details.get("user_mentions")
        urls = entity_details.get("urls")
        if hash_tags:
            scripts.ilapfuncs.logfunc("Hashtags present in DMs, these are not currently processed")
        if symbols:
            scripts.ilapfuncs.logfunc("Symbols present in DMs, these are not currently processed")
        if user_mentions:
            scripts.ilapfuncs.logfunc("User mentions present in DMs, these are not currently processed")
        if urls:
            for url in urls:
                entities.append(f"Url: {url['url']} (Expanded: {url['expanded_url']})")
    attachment_details = []
    if "attachment" in notification_data["message"]["message_data"]:
        attachment = notification_data["message"]["message_data"]["attachment"]
        for att_key, att_item in attachment.items():
            if att_key == "card":
                attachment_details.extend([
                    f"URL: {att_item['url']}",
                    f"URL Title: {att_item['binding_values']['title']['string_value']}",
                    f"URL Description: {att_item['binding_values']['description']['string_value']}",
                ])
            elif att_key == "photo":
                attachment_details.extend([
                    f"Photo ID: {att_item['id']}",
                    f"Photo Media URL: {att_item['media_url']}",
                    f"Photo URL: {att_item['url']} (Expanded: {att_item['expanded_url']})",
                    f"Photo Dimensions: {att_item['original_info']['width']}, {att_item['original_info']['height']}"
                ])
            else:
                # print(att_key, att_item)
                scripts.ilapfuncs.logfunc(f"Unknown attachment type {att_key} in DMs, please contact the developer")
    return conversation_key, other_party, (sender, recipient, timestamp, text, entities, attachment_details)