common.py 579 B

1234567891011121314151617181920212223242526272829303132333435
  1. from __future__ import annotations
  2. from datetime import datetime
  3. from typing import Generic, TypeVar
  4. from pydantic import BaseModel, ConfigDict
  5. T = TypeVar("T")
  6. class ORMModel(BaseModel):
  7. model_config = ConfigDict(from_attributes=True, extra="ignore")
  8. class MessageResponse(BaseModel):
  9. message: str
  10. class Page(BaseModel, Generic[T]):
  11. items: list[T]
  12. total: int
  13. page: int
  14. page_size: int
  15. class TimeRange(BaseModel):
  16. start: datetime | None = None
  17. end: datetime | None = None
  18. class SelectOption(BaseModel):
  19. label: str
  20. value: str