from collections import namedtuple from dataclasses import dataclass from datetime import date from typing import List, Optional from utils.snowflake.google_data.models import LinkfireLink FacebookCampaignsQueryResult = namedtuple( "FacebookCampaignsQueryResult", [ "campaign_id", "campaign_name", "marketing_account_id", "objective", "spend", "start_date", "end_date", "platforms", "genders", "ages", "country_codes", "urls", "artists", "budget", "linkfire_links", ], ) FacebookAdSetsQueryResult = namedtuple( "FacebookCampaignsQueryResult", [ "adset_id", "campaign_id", "marketing_account_id", "adset_name", "objective", "spend", "start_date", "end_date", "genders", "ages", "country_codes", "platforms", "urls", "budget", ], ) @dataclass class FacebookCampaignModel: id: str name: str account_id: int objective: str spend: float start_date: date end_date: date platforms: List[str] genders: List[str] ages: List[str] country_codes: List[str] links: List artists: List budget: float linkfire_links: Optional[List[LinkfireLink]] @dataclass class FacebookAdSetModel: id: str name: str campaign_id: str account_id: int objective: str spend: float start_date: date end_date: date platforms: List[str] genders: List[str] ages: List[str] country_codes: List[str] links: List budget: float