# Copyright (C) 2015 Twitter, Inc.

"""Container for all enum values used by the Ads API SDK."""


def enum(**enums):
    return type('Enum', (), enums)

TRANSFORM = enum(
    TIME=0,
    BOOL=1,
    INT=2,
    LIST=3,
    OBJECT=4
)

BID_UNIT = enum(
    APP_CLICK='APP_CLICK',
    APP_INSTALL='APP_INSTALL',
    ENGAGEMENT='ENGAGEMENT',
    FOLLOW='FOLLOW',
    LEAD='LEAD',
    LINK_CLICK='LINK_CLICK',
    VIEW='VIEW'
)

CHARGE_BY = enum(
    APP_CLICK='APP_CLICK',
    APP_INSTALL='APP_INSTALL',
    ENGAGEMENT='ENGAGEMENT',
    FOLLOW='FOLLOW',
    LEAD='LEAD',
    LINK_CLICK='LINK_CLICK',
    VIEW='VIEW'
)

OPTIMIZATIONS = enum(
    DEFAULT='DEFAULT',
    WEBSITE_CONVERSIONS='WEBSITE_CONVERSIONS'
)

PRODUCT = enum(
    PROMOTED_ACCOUNT='PROMOTED_ACCOUNT',
    PROMOTED_TWEETS='PROMOTED_TWEETS'
)

PLACEMENT = enum(
    ALL_ON_TWITTER='ALL_ON_TWITTER',
    TWITTER_SEARCH='TWITTER_SEARCH',
    TWITTER_TIMELINE='TWITTER_TIMELINE',
    PUBLISHER_NETWORK='PUBLISHER_NETWORK'
)

OBJECTIVE = enum(
    APP_ENGAGEMENTS='APP_ENGAGEMENTS',
    APP_INSTALLS='APP_INSTALLS',
    FOLLOWERS='FOLLOWERS',
    LEAD_GENERATION='LEAD_GENERATION',
    TWEET_ENGAGEMENTS='TWEET_ENGAGEMENTS',
    VIDEO_VIEWS='VIDEO_VIEWS',
    WEBSITE_CLICKS='WEBSITE_CLICKS',
    CUSTOM='CUSTOM'
)

GRANULARITY = enum(
    HOUR='HOUR',
    DAY='DAY',
    TOTAL='TOTAL'
)

AGE_BUCKET = enum(
    AGE_13_TO_17='AGE_13_TO_17',
    AGE_18_TO_24='AGE_18_TO_24',
    AGE_25_TO_34='AGE_25_TO_34',
    AGE_35_TO_44='AGE_35_TO_44',
    AGE_45_TO_54='AGE_45_TO_54',
    AGE_55_TO_64='AGE_55_TO_64',
    AGE_OVER_65='AGE_OVER_65'
)

AGE_BUCKET_COARSE = enum(
    AGE_18_TO_34='AGE_18_TO_34',
    AGE_18_TO_49='AGE_18_TO_49',
    AGE_25_TO_54='AGE_25_TO_54',
    AGE_OVER_21='AGE_OVER_21'
)

EVENTS = enum(
    MUSIC_AND_ENTERTAINMENT='MUSIC_AND_ENTERTAINMENT',
    SPORTS='SPORTS',
    HOLIDAY='HOLIDAY',
    CONFERENCE='CONFERENCE',
    OTHER='OTHER'
)

TA_LIST_TYPES = enum(
    EMAIL='EMAIL',
    DEVICE_ID='DEVICE_ID',
    TWITTER_ID='TWITTER_ID',
    HANDLE='HANDLE',
    PHONE_NUMBER='PHONE_NUMBER'
)

TA_OPERATIONS = enum(
    ADD='ADD',
    REMOVE='REMOVE',
    REPLACE='REPLACE'
)
