選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

107 行
2.8 KiB

  1. from pydantic import BaseModel
  2. from typing import Optional
  3. from uuid import UUID
  4. from typing import Optional, Union
  5. class BuildingItem(BaseModel):
  6. id: UUID
  7. name: str
  8. city: Optional[str] = None
  9. address: Optional[str] = None
  10. latitude: Optional[float] = None
  11. longitude: Optional[float] = None
  12. class PlanItem(BaseModel):
  13. id: UUID
  14. name: str
  15. image: Optional[str] = None
  16. scale: Optional[float] = None
  17. building: Optional[UUID] = None
  18. class ZoneItem(BaseModel):
  19. id: UUID
  20. name: str
  21. groups: Optional[str] = None
  22. plan: Optional[UUID] = None
  23. building: Optional[UUID] = None
  24. class GatewayItem(BaseModel):
  25. id: str
  26. name: str
  27. mac: Optional[str] = None
  28. status: Optional[Union[str, bool]] = None
  29. model: Optional[str] = None
  30. ip: Optional[str] = None
  31. position: Optional[str] = None
  32. x: Optional[float] = None
  33. y: Optional[float] = None
  34. notes: Optional[str] = None
  35. zone: Optional[str] = None
  36. building: Optional[str] = None
  37. class TrackerItem(BaseModel):
  38. id: UUID
  39. name: str
  40. mac: Optional[str] = None
  41. status: Optional[str] = None
  42. model: Optional[str] = None
  43. position: Optional[str] = None
  44. notes: Optional[str] = None
  45. x: Optional[float] = None
  46. y: Optional[float] = None
  47. zone: Optional[UUID] = None
  48. building: Optional[UUID] = None
  49. class OperatorItem(BaseModel):
  50. id: str
  51. name: str
  52. phone: Optional[str] = None
  53. zones: Optional[str] = None
  54. groups: Optional[str] = None
  55. notes: Optional[str] = None
  56. building: Optional[UUID] = None
  57. class SubjectItem(BaseModel):
  58. id: str
  59. name: str
  60. role: Optional[str] = None
  61. phone: Optional[str] = None
  62. zones: Optional[str] = None
  63. groups: Optional[str] = None
  64. notes: Optional[str] = None
  65. building: Optional[UUID] = None
  66. class AlarmItem(BaseModel):
  67. id: str
  68. timestamp: Optional[str] = None
  69. type: Optional[str] = None
  70. status: Optional[str] = None
  71. gateway: Optional[UUID] = None
  72. gatewayMac: Optional[str] = None
  73. tracker: Optional[UUID] = None
  74. trackerBid: Optional[str] = None
  75. subject: Optional[UUID] = None
  76. subjectName: Optional[str] = None
  77. operator: Optional[UUID] = None
  78. operatorName: Optional[str] = None
  79. zone: Optional[UUID] = None
  80. zoneName: Optional[str] = None
  81. building: Optional[UUID] = None
  82. class TrackItem(BaseModel):
  83. id: str
  84. timestamp: Optional[str] = None
  85. type: Optional[str] = None
  86. status: Optional[str] = None
  87. gateway: Optional[UUID] = None
  88. gatewayMac: Optional[str] = None
  89. tracker: Optional[UUID] = None
  90. trackerMac: Optional[str] = None
  91. subject: Optional[str] = None
  92. subjectName: Optional[str] = None
  93. zone: Optional[str] = None
  94. zoneName: Optional[str] = None
  95. signal: Optional[float] = None
  96. building: Optional[UUID] = None