import os from dotenv import load_dotenv load_dotenv() class Config: # Database DATABASE_URL: str = os.getenv("DATABASE_URL", "sqlite:///./chepuhagram.db") # Security JWT_KEY: str = os.getenv("JWT_KEY", "") if not JWT_KEY: raise RuntimeError("JWT_KEY environment variable not set") # Firebase FIREBASE_CREDENTIALS_PATH: str = os.getenv("FIREBASE_CREDENTIALS_PATH", "chepuhagram-6ca5d-firebase-adminsdk-fbsvc-cf8a5ad2f3.json") # Google Cloud / Google Drive Integration # Путь к скачанному JSON-ключу вашего сервисного аккаунта Google GOOGLE_APPLICATION_CREDENTIALS: str = os.getenv("GOOGLE_APPLICATION_CREDENTIALS", "google-credentials.json") GOOGLE_DRIVE_FOLDER_ID: str = os.getenv("GOOGLE_DRIVE_FOLDER_ID", None) GOOGLE_REFRESH_TOKEN: str = os.getenv("GOOGLE_REFRESH_TOKEN", None) GOOGLE_CLIENT_ID: str = os.getenv("GOOGLE_CLIENT_ID", None) GOOGLE_CLIENT_SECRET: str = os.getenv("GOOGLE_CLIENT_SECRET", None) # Server HOST: str = os.getenv("HOST", "0.0.0.0") PORT: int = int(os.getenv("PORT", "8587")) # Media Storage & Quotas (Google Drive) # 10 ГБ лимита на пользователя (при превышении удаляются старые медиафайлы) HOME_USER_QUOTA_BYTES: int = int(os.getenv("HOME_USER_QUOTA_BYTES", str(10 * 1024 * 1024 * 1024))) # Максимальный размер одного загружаемого файла (500 МБ) MEDIA_UPLOAD_MAX_BYTES: int = int(os.getenv("MEDIA_UPLOAD_MAX_BYTES", str(500 * 1024 * 1024))) # CORS ALLOWED_ORIGINS: list = os.getenv("ALLOWED_ORIGINS", "http://localhost:3000,http://127.0.0.1:3000").split(",") # Системные ключи шифрования SYSTEM_CHAT_PRIVATE_KEY: str = os.getenv("SYSTEM_CHAT_PRIVATE_KEY", "") SYSTEM_CHAT_PUBLIC_KEY: str = os.getenv("SYSTEM_CHAT_PUBLIC_KEY", "") config = Config()