from pydantic_settings import BaseSettings from typing import List from pathlib import Path class Settings(BaseSettings): PROJECT_NAME: str = "Multi-Tenant SaaS Platform" PROJECT_VERSION: str = "1.0.0" API_V1_STR: str = "/api/v1" SECRET_KEY: str = "your-secret-key-change-in-production" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 ALGORITHM: str = "HS256" DB_DIR: Path = Path("/app/storage/db") SQLALCHEMY_DATABASE_URL: str = f"sqlite:///{DB_DIR}/db.sqlite" CORS_ORIGINS: List[str] = ["*"] REDIS_URL: str = "redis://localhost:6379/0" CELERY_BROKER_URL: str = "redis://localhost:6379/0" CELERY_RESULT_BACKEND: str = "redis://localhost:6379/0" RATE_LIMIT_REQUESTS: int = 100 RATE_LIMIT_WINDOW: int = 60 WEBHOOK_SECRET: str = "webhook-secret-key" EXTERNAL_USER_SERVICE_URL: str = "http://localhost:8001" EXTERNAL_PAYMENT_SERVICE_URL: str = "http://localhost:8002" EXTERNAL_COMMUNICATION_SERVICE_URL: str = "http://localhost:8003" CIRCUIT_BREAKER_FAILURE_THRESHOLD: int = 5 CIRCUIT_BREAKER_TIMEOUT: int = 60 class Config: env_file = ".env" case_sensitive = True settings = Settings()