from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    """Application settings, loaded from environment variables / .env file."""

    PROJECT_NAME:str
    DATABASE_URL:str
    SECRET_KEY:str
    ALGORITHM:str
    ALLOWED_ORIGINS:str
    ACCESS_TOKEN_EXPIRE_MINUTES:int
    MEDIA_DIR:str   # Storage de media (fotos). En dev: disco local servido en /media. En producción se cambia a Cloudflare R2 tocando solo app/services/storage.py.
    PUBLIC_MEDIA_URL:str

    model_config = SettingsConfigDict(
        env_file=(".env",),
        env_file_encoding="utf-8",
        case_sensitive=True,
        extra="ignore",
    )

    @property
    def allowed_origins_list(self) -> list[str]:
        return [o.strip() for o in self.ALLOWED_ORIGINS.split(",") if o.strip()]


settings = Settings()
