from pydantic_settings import BaseSettings from typing import Optional class Settings(BaseSettings): # Database postgres_db: str = "schaeffler" postgres_user: str = "schaeffler" postgres_password: str = "schaeffler" postgres_host: str = "localhost" postgres_port: int = 5432 @property def database_url(self) -> str: return ( f"postgresql+asyncpg://{self.postgres_user}:{self.postgres_password}" f"@{self.postgres_host}:{self.postgres_port}/{self.postgres_db}" ) @property def database_url_sync(self) -> str: return ( f"postgresql://{self.postgres_user}:{self.postgres_password}" f"@{self.postgres_host}:{self.postgres_port}/{self.postgres_db}" ) # Redis / Celery redis_url: str = "redis://localhost:6379/0" # JWT jwt_secret_key: str = "changeme" jwt_algorithm: str = "HS256" jwt_access_token_expire_minutes: int = 480 # Azure OpenAI azure_openai_api_key: Optional[str] = None azure_openai_endpoint: Optional[str] = None azure_openai_deployment: str = "gpt-4o" azure_openai_api_version: str = "2024-02-01" # File Storage upload_dir: str = "/app/uploads" max_upload_size_mb: int = 500 class Config: env_file = ".env" case_sensitive = False settings = Settings()