# config/settings.py """ 应用全局配置文件 包含应用基本信息、服务配置、数据库配置、日志配置等 """ import os from dataclasses import dataclass from typing import List, Dict, Any # 应用基本信息 class AppConfig: """应用基本配置""" NAME = "天风任务模块" # 应用名称 VERSION = "1.0.0" # 应用版本号 DEBUG = os.environ.get("DEBUG", "True").lower() == "true" # 调试模式开关,可通过环境变量设置 # 服务配置 class ServerConfig: """服务器配置""" HOST = os.environ.get("HOST", "0.0.0.0") # 服务监听地址 PORT = int(os.environ.get("PORT", 8000)) # 服务监听端口 RELOAD = AppConfig.DEBUG # 是否启用热重载,默认与DEBUG模式一致 # API配置 class ApiConfig: """API配置""" PREFIX = "/api/v1" TITLE = "天风任务模块API" # API文档标题 DESCRIPTION = "AMR调度系统中天风任务模块的API接口" # API文档描述 VERSION = AppConfig.VERSION # API版本号 # CORS配置(跨域资源共享) class CorsConfig: """CORS配置""" ALLOW_ORIGINS = ["*"] # 允许的源,* 表示允许所有源 ALLOW_CREDENTIALS = True # 是否允许携带凭证 ALLOW_METHODS = ["*"] # 允许的HTTP方法 ALLOW_HEADERS = ["*"] # 允许的HTTP头 # 数据库配置 class DatabaseConfig: """数据库配置""" HOST = os.environ.get("DB_HOST", "localhost") # 数据库主机 PORT = int(os.environ.get("DB_PORT", 3306)) # 数据库端口 USER = os.environ.get("DB_USER", "root") # 数据库用户名 PASSWORD = os.environ.get("DB_PASSWORD", "password") # 数据库密码 DATABASE = os.environ.get("DB_NAME", "tianfeng_task") # 数据库名 CHARSET = "utf8mb4" # 字符集 @classmethod def as_dict(cls) -> Dict[str, Any]: """返回数据库配置字典""" return { "host": cls.HOST, "port": cls.PORT, "user": cls.USER, "password": cls.PASSWORD, "database": cls.DATABASE, "charset": cls.CHARSET } # 日志配置 class LogConfig: """日志配置""" LEVEL = os.environ.get("LOG_LEVEL", "INFO") # 日志级别 FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" # 日志格式 FILE = os.environ.get("LOG_FILE", "logs/tianfeng_task.log") # 日志文件路径 @classmethod def as_dict(cls) -> Dict[str, Any]: """返回日志配置字典""" return { "level": cls.LEVEL, "format": cls.FORMAT, "file": cls.FILE } # 组件配置 class ComponentConfig: """组件配置""" PACKAGES = ["components"] # 组件包路径 # 响应码配置 class ResponseCode: """响应码配置""" SUCCESS = 200 # 成功 BAD_REQUEST = 400 # 请求错误 UNAUTHORIZED = 401 # 未授权 FORBIDDEN = 403 # 禁止访问 NOT_FOUND = 404 # 资源不存在 SERVER_ERROR = 500 # 服务器错误 # 任务状态配置 class TaskStatus: """任务状态配置""" PENDING = "待执行" # 待执行 RUNNING = "执行中" # 执行中 COMPLETED = "已完成" # 已完成 FAILED = "执行失败" # 执行失败 CANCELED = "已取消" # 已取消 PAUSED = "暂停中" # 暂停中 WAITING = "等待中" # 等待中 # 导出日志配置字典,供其他模块使用 LOG_CONFIG = LogConfig.as_dict() # 导出组件包列表,供组件注册使用 COMPONENT_PACKAGES = ComponentConfig.PACKAGES