slot_snapshot.py 862 B

123456789101112131415161718192021222324252627282930313233343536
  1. # app/schemas/slot_snapshot.py
  2. from pydantic import BaseModel
  3. from typing import Any, Optional
  4. from datetime import datetime, date
  5. class SlotSnapshotBase(BaseModel):
  6. country: str
  7. city: str
  8. visa_type: str
  9. routing_key: str
  10. availability_status: str
  11. earliest_date: Optional[date] = None
  12. website: Optional[str] = None
  13. availability: Any
  14. snapshot_source: str
  15. snapshot_at: datetime
  16. class SlotSnapshotCreate(SlotSnapshotBase):
  17. pass
  18. class SlotSnapshotOut(SlotSnapshotBase):
  19. id: int
  20. model_config = {
  21. "from_attributes": True
  22. }
  23. class SlotOverviewOut(SlotSnapshotBase):
  24. id: int
  25. routing_key: Optional[str]=None
  26. snapshot_source: Optional[str]=None
  27. last_check_at: Optional[datetime]=None
  28. availability: Optional[Any]=None
  29. model_config = {
  30. "from_attributes": True
  31. }