38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
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"
|
|
|
|
# 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()
|