first commit

This commit is contained in:
Chris
2026-03-23 20:23:58 +08:00
commit 74d612aca1
3193 changed files with 692056 additions and 0 deletions

View File

@@ -0,0 +1 @@
"""Core configuration and shared helpers."""

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,47 @@
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()