"""Service configs.""" import os from apollo_notifications.charts.config import ChartsConfig, ChartsSchemaConfig from apollo_notifications.config import LockConfig, LoopRunningConfig, PushClientConfig from apollo_notifications.user_data.config import UserDataConfig from apollo_main_db.push_notifications.models import TopicEnum, VendorEnum class Config(ChartsConfig, ChartsSchemaConfig, LockConfig, LoopRunningConfig, PushClientConfig, UserDataConfig): VENDOR = VendorEnum.SPOTIFY.name.lower() TOPIC = TopicEnum.CHART_MAJOR_MOVES.name.lower() PUSH_SEARCH_MODE = os.environ.get("PUSH_SEARCH_MODE", "HISTORICAL") MESSAGE_TEMPLATE = ( "🔥️ {artist_name} - {track_name} moved up {moves} spots on " "Spotify Daily Top 200 Chart {country_flag} to position {position}" ) SIGNIFICANT_DROP_TEMPLATE = ( "⚠️ {artist_name} - {track_name} moved down {moves} spots on " "Spotify Daily Top 200 Chart {country_flag} to position {position}" ) THRESHOLD_MAJOR_MOVES: int = int(os.environ.get("THRESHOLD_MAJOR_MOVES", 5)) PUSH_TARGET = "Spotify Daily Top 200 Chart" TITLE = "" APP_NAME = "spotify_charts_moves_notifications" REDIS_LOCK_ENABLED = bool(os.environ.get("REDIS_LOCK_ENABLED", False)) REDIS_LOCK_TTL = int(os.environ.get("REDIS_LOCK_TTL", 86400)) # 24h PUSH_NOTIFICATIONS_QUEUE = os.environ["PUSH_NOTIFICATIONS_QUEUE"] PUSH_SAVE_MODE = os.environ.get("PUSH_SAVE_MODE", "ALL") DB_NAME = os.environ["MYSQL_DB_NAME"] DB_HOST = os.environ["MYSQL_DB_HOST"] DB_PORT = int(os.environ.get("MYSQL_DB_PORT", 3306)) DB_USER = os.environ["MYSQL_DB_USER"] DB_PASS = os.environ["MYSQL_DB_PASS"] DB_POOL_RECYCLE = int(os.environ.get("DB_POOL_RECYCLE", 7200)) DB_POOL_SIZE = int(os.environ.get("DB_POOL_SIZE", 1)) REDIS_HOST = os.environ["REDIS_HOST"] REDIS_PORT = int(os.environ.get("REDIS_PORT", 6379)) USER_DATA_SCHEMA = os.environ.get("USER_DATA_SCHEMA", "https") USER_DATA_HOST = os.environ["USER_DATA_HOST"] USER_DATA_APIKEY = os.environ["USER_DATA_APIKEY"] USER_DATA_TIMEOUT = int(os.environ.get("USER_DATA_TIMEOUT", 120)) USER_DATA_RETRY_COUNT = int(os.environ.get("USER_DATA_RETRY_COUNT", 3)) USER_DATA_RETRY_DELAY = int(os.environ.get("USER_DATA_RETRY_DELAY", 1)) USER_DATA_BATCH_SIZE = int(os.environ.get("USER_DATA_BATCH_SIZE", 3000)) USER_DATA_APP_HEADER = os.environ.get("USER_DATA_APP_HEADER", "apollo") SENTRY_DSN = os.environ.get("SENTRY_DSN") ENVIRONMENT = os.environ.get("ENVIRONMENT", "local").lower() config = Config()