"""Service configs.""" import os from apollo_notifications.config import LockConfig, LoopRunningConfig from apollo_notifications.playlists.config import PlaylistsConfig, PlaylistsSchemaConfig from apollo_notifications.push_client.config import PushClientConfig from apollo_notifications.user_data.config import UserDataConfig from apollo_main_db.push_notifications.models import TopicEnum, VendorEnum class Config(PlaylistsConfig, PlaylistsSchemaConfig, LockConfig, LoopRunningConfig, PushClientConfig, UserDataConfig): VENDOR = VendorEnum.APPLE.name.lower() PUSH_SEARCH_MODE = os.environ.get("PUSH_SEARCH_MODE", "REDUCED") TOPIC = TopicEnum.PLAYLIST_UPDATE.name.lower() MESSAGE_TEMPLATE: str = "⭐ {playlist_name} tracklist has been updated on Apple Music {country_flag}" TITLE = "Starred Playlist Update" APP_NAME = "apple_playlist_update_notifications" LAST_RUN_DATE_KEY = "apple_pl_upd_push" 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", "REDUCED") BLACKLIST_KEY = f"{APP_NAME}/{VENDOR}/blacklist" BLACKLIST_TTL = int(os.environ.get("BLACKLIST_TTL", 10800)) # 3 hours STARRED_PLAYLISTS_BATCH_SIZE = int(os.environ.get("STARRED_PLAYLISTS_BATCH_SIZE", 100)) 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()