from pydantic_settings import BaseSettings class Settings(BaseSettings): PROJECT_NAME: str = "TJWater Server" API_V1_STR: str = "/api/v1" # JWT 配置 SECRET_KEY: str = ( "your-secret-key-here-change-in-production-use-openssl-rand-hex-32" ) ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 REFRESH_TOKEN_EXPIRE_DAYS: int = 7 # 数据加密密钥 (使用 Fernet) ENCRYPTION_KEY: str = "" # 必须从环境变量设置 # Database Config (PostgreSQL) DB_NAME: str = "tjwater" DB_HOST: str = "localhost" DB_PORT: str = "5432" DB_USER: str = "postgres" DB_PASSWORD: str = "password" # Database Config (TimescaleDB) TIMESCALEDB_DB_NAME: str = "tjwater" TIMESCALEDB_DB_HOST: str = "localhost" TIMESCALEDB_DB_PORT: str = "5433" TIMESCALEDB_DB_USER: str = "postgres" TIMESCALEDB_DB_PASSWORD: str = "password" # InfluxDB INFLUXDB_URL: str = "http://localhost:8086" INFLUXDB_TOKEN: str = "token" INFLUXDB_ORG: str = "org" INFLUXDB_BUCKET: str = "bucket" @property def SQLALCHEMY_DATABASE_URI(self) -> str: return f"postgresql://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}" class Config: env_file = ".env" extra = "ignore" settings = Settings()