from pathlib import Path from pydantic_settings import BaseSettings _config_path = Path(__file__).resolve() _env_file = ( _config_path.parents[3] / ".env" if _config_path.parents[2].name == "server" else _config_path.parents[2] / ".env" ) class Settings(BaseSettings): DATABASE_URL: str DATABASE_URL_SYNC: str REDIS_URL: str = "redis://localhost:6379/0" SECRET_KEY: str ACCESS_TOKEN_EXPIRE_MINUTES: int = 43200 REFRESH_TOKEN_EXPIRE_DAYS: int = 60 STORAGE_BACKEND: str = "local" LOCAL_STORAGE_PATH: str = "./uploads" S3_ENDPOINT: str = "" S3_ACCESS_KEY: str = "" S3_SECRET_KEY: str = "" S3_BUCKET: str = "ciyuan-viewfinder" S3_REGION: str = "" S3_PUBLIC_URL: str = "" TENCENT_MAP_KEY: str = "" SENTRY_DSN: str = "" LOG_JSON: bool = False LOG_LEVEL: str = "INFO" DEFAULT_ADMIN_ENABLED: bool = True DEFAULT_ADMIN_PHONE: str = "13900000001" DEFAULT_ADMIN_EMAIL: str = "admin@ciyuan.local" DEFAULT_ADMIN_PASSWORD: str = "admin123456" DEFAULT_ADMIN_NICKNAME: str = "系统管理员" DEFAULT_ADMIN_SYNC_PASSWORD: bool = True class Config: env_file = _env_file settings = Settings()