def METHOD_NAME(self, post):
    """
    Maps a post to collect aggregate data. Returns a key for grouping data, a dictionary of aggregate data that can
    be summed when encountered again and a dictionary of static data that should be updated.
    E.g. number of tweets might be aggregated (summed over interval), but username of tweeter will be static.
    """
    group_by_key_bool = 'hashtag'
    # Use set as hashtag/mention is either in tweet or not AND adding it from the reference tweet should not duplicate
    hashtags = set([tag["tag"] for tag in post.get("entities", {}).get("hashtags", [])])
    mentions = set([tag["username"] for tag in post.get("entities", {}).get("mentions", [])])
    # Update hashtags and mentions
    for ref_tweet in post.get('referenced_tweets', []):
        if ref_tweet.get('type') in ['retweeted', 'quoted']:
            hashtags.update([tag['tag'] for tag in ref_tweet.get('entities', {}).get('hashtags', [])])
            mentions.update([tag['username'] for tag in ref_tweet.get('entities', {}).get('mentions', [])])
    sum_map = {
                "Number of Tweets containing Hashtag": 1,
                "Number of Retweets of Tweets w/ Hashtag": post.get('public_metrics').get('retweet_count'),
                "Number of Replies to Tweets w/ Hashtag": post.get('public_metrics').get('reply_count'),
                "Number of Likes of Tweets w/ Hashtag": post.get('public_metrics').get('like_count'),
                "Number of Quotes of Tweets w/ Hashtag": post.get('public_metrics').get('quote_count'),
            }
    static_map = {}
    list_map = {
        'Users of Hashtag': [post["author_user"]["username"]],
        "Mentions": list(mentions),
        "Hashtags": list(hashtags),
    }
    return group_by_key_bool, hashtags, sum_map, static_map, list_map