""" Configuración runtime via variables de entorno. Toda la configuración pasa por aquí — no leas env vars dispersos en otros módulos. """ from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=None, case_sensitive=True) DATABASE_URL: str = Field(..., description="Connection string runtime de la app") MIGRATION_DATABASE_URL: str = Field( default="", description="Connection string para Alembic; si vacío, usa DATABASE_URL", ) LOG_LEVEL: str = "INFO" CORRELATION_ID_HEADER: str = "X-Correlation-ID" OPENAPI_REQUIRE_AUTH: bool = False KEYCLOAK_ISSUER: str = "" STATIC_DEMO_PATH: str = "/app/static/demo" @property def migration_url(self) -> str: return self.MIGRATION_DATABASE_URL or self.DATABASE_URL settings = Settings()