from apollo_utils.core.utils.ext_enum import ExtEnum from src.config import config class Env: PROD: str = "prod" DEV: str = "dev" LOCAL: str = "local" class DBType(ExtEnum): PSQL = "PSQL" MYSQL = "MYSQL" DB_ENGINE_PREFIX = {DBType.PSQL: "postgresql+psycopg2://", DBType.MYSQL: "mysql+pymysql://"} DB_CREDENTIALS_BASE = "{user}:{password}@{host}:{port}/{database_name}" DB_CREDENTIALS_MYSQL = f"{DB_CREDENTIALS_BASE}?binary_prefix=true" DB_CREDENTIALS = {DBType.PSQL: DB_CREDENTIALS_BASE, DBType.MYSQL: DB_CREDENTIALS_MYSQL} class DBCredentialKeys(ExtEnum): USER = "user" PASSWORD = "password" HOST = "host" PORT = "port" DATABASE_NAME = "database_name" DB_CREDENTIAL_KEYS = DBCredentialKeys.values() class Service(ExtEnum): USER_DATA = "USERDATA" ATLAS = "ATLAS" APP_HEADER = {"X-App-Slug": "apollo", "X-App-Name": config.APP_INSTANCE_KEY} ATLAS_AUDIENCE = "atlasum|api_read" ATLAS_GRANT_TYPE = "client_credentials" AUTH0_PREFIX = "auth0|" class Model: ACCOUNTS = "accounts" INACTIVE_ACCOUNTS = "inactive_accounts" EVENTS = "events" MESSAGES = "messages"