import os from pydantic_settings import BaseSettings from typing import Optional class Settings(BaseSettings): # 数据库配置 USE_SQLITE: bool = False # 设为 False 使用 MySQL DB_HOST: str = "127.0.0.1" DB_PORT: int = 3306 DB_USER: str = "cursorpro" DB_PASSWORD: str = "jf6BntYBPz6KH6Pw" DB_NAME: str = "cursorpro" # JWT配置 SECRET_KEY: str = "hb8x2kF9mNpQ3rT7vY1zA4cE6gJ0lO5sU8wB2dH4" ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7天 # 管理员账号 ADMIN_USERNAME: str = "admin" ADMIN_PASSWORD: str = "Hb@2024Pro!" # 外部系统API Token (用于批量上传账号等) API_TOKEN: str = "hb-ext-9kX2mP5nQ8rT1vY4zA7c" @property def DATABASE_URL(self) -> str: if self.USE_SQLITE: # SQLite 用于本地测试 db_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "cursorpro.db") return f"sqlite:///{db_path}" return f"mysql+pymysql://{self.DB_USER}:{self.DB_PASSWORD}@{self.DB_HOST}:{self.DB_PORT}/{self.DB_NAME}?charset=utf8mb4" class Config: env_file = ".env" extra = "allow" settings = Settings()