models.py 869 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from dataclasses import dataclass
  2. from datetime import datetime
  3. @dataclass(frozen=True, slots=True)
  4. class Salesperson:
  5. id: str
  6. admin_user_id: str
  7. code: str
  8. name: str
  9. status: str
  10. created_at: datetime
  11. @dataclass(frozen=True, slots=True)
  12. class PromotionCode:
  13. id: str
  14. code: str
  15. salesperson_id: str
  16. channel: str
  17. status: str
  18. created_at: datetime
  19. @dataclass(frozen=True, slots=True)
  20. class LeadAttribution:
  21. id: str
  22. h5_user_id: str
  23. salesperson_id: str
  24. promotion_code_id: str
  25. source_code: str
  26. visit_count: int
  27. first_touch_at: datetime
  28. last_touch_at: datetime
  29. @dataclass(frozen=True, slots=True)
  30. class OrderAttribution:
  31. id: str
  32. order_id: str
  33. h5_user_id: str
  34. salesperson_id: str
  35. promotion_code_id: str
  36. source_code: str
  37. amount_cents: int
  38. attributed_at: datetime