ticket.py 800 B

12345678910111213141516171819202122232425262728293031323334353637
  1. from pydantic import BaseModel
  2. from typing import Optional, Literal, Dict, Any
  3. from datetime import datetime
  4. class VasTicketBase(BaseModel):
  5. status: Optional[
  6. Literal['pending', 'info_required', 'resolved', 'rejected']
  7. ] = None
  8. admin_comment: Optional[str] = None
  9. extra_fields: Optional[Dict[str, Any]] = None
  10. class VasTicketCreate(BaseModel):
  11. order_id: str
  12. user_id: str
  13. type: Literal['refund', 'dispute', 'change_request']
  14. reason: Optional[str]
  15. extra_fields: Optional[Dict[str, Any]]
  16. class VasTicketUpdate(VasTicketBase):
  17. pass
  18. class VasTicketOut(VasTicketBase):
  19. id: int
  20. order_id: str
  21. user_id: str
  22. type: str
  23. reason: Optional[str]
  24. created_at: datetime
  25. updated_at: datetime
  26. class Config:
  27. orm_mode = True