Files
mkt.ose.tw/backend/app/core/config.py
2026-03-23 20:23:58 +08:00

48 lines
1.4 KiB
Python

from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
app_name: str = "mktapi.ose.tw"
app_version: str = "0.1.0"
app_env: str = "development"
log_level: str = "INFO"
api_prefix: str = "/api"
db_host: str = "127.0.0.1"
db_port: int = 5432
db_database: str = "mkt.ose.tw"
db_user: str = "mkt_ose"
db_password: str = ""
database_url: str = "postgresql+asyncpg://mkt_ose:@127.0.0.1:5432/mkt.ose.tw"
directus_base_url: str = "https://mktcms.ose.tw"
directus_admin_token: str | None = None
directus_timeout: float = 15.0
cors_allowed_origins: str = (
"http://127.0.0.1:3000,http://localhost:3000,"
"http://127.0.0.1:5173,http://localhost:5173,"
"https://127.0.0.1:3000,https://localhost:3000,"
"https://127.0.0.1:5173,https://localhost:5173,"
"https://mkt.ose.tw"
)
@property
def cors_allowed_origin_list(self) -> list[str]:
"""Return normalized CORS origins from a simple comma-separated env value."""
return [
origin.strip()
for origin in self.cors_allowed_origins.split(",")
if origin.strip()
]
model_config = SettingsConfigDict(
env_file=(".env.fastapi.development", ".env"),
env_file_encoding="utf-8",
case_sensitive=False,
extra="ignore",
)
settings = Settings()