config_schema.py 921 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from pydantic import BaseModel
  2. from typing import Optional, Any, List
  3. from datetime import datetime
  4. class ConfigItem(BaseModel):
  5. key: str
  6. value: Any
  7. type: str
  8. category: str
  9. description: Optional[str] = None
  10. updated_at: Optional[datetime] = None
  11. class Config:
  12. from_attributes = True
  13. class ConfigUpdate(BaseModel):
  14. key: str
  15. value: Any
  16. class ConfigBatchUpdate(BaseModel):
  17. configs: List[ConfigUpdate]
  18. class ConfigHistoryItem(BaseModel):
  19. id: int
  20. config_key: str
  21. old_value: Optional[str] = None
  22. new_value: str
  23. updated_by: Optional[int] = None
  24. updated_at: datetime
  25. class Config:
  26. from_attributes = True
  27. class ConfigResponse(BaseModel):
  28. code: int = 0
  29. message: str = "success"
  30. data: Any
  31. class ConfigListResponse(BaseModel):
  32. code: int = 0
  33. message: str = "success"
  34. data: dict # 按category分组的配置项