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

140 行
3.5 KiB

  1. from pydantic import BaseModel
  2. from typing import Optional
  3. from uuid import UUID
  4. from typing import Optional, Union
  5. from typing import List
  6. class BuildingItem(BaseModel):
  7. id: UUID
  8. name: str
  9. city: Optional[str] = None
  10. address: Optional[str] = None
  11. latitude: Optional[float] = None
  12. longitude: Optional[float] = None
  13. class FloorItem(BaseModel):
  14. id: UUID
  15. name: str
  16. floornumber: int
  17. image: Optional[str] = None
  18. description: Optional[str] = None
  19. scale: Optional[float] = None
  20. building: Optional[UUID] = None
  21. class ZoneItem(BaseModel):
  22. id: UUID
  23. name: str
  24. groups: List[UUID]
  25. floor: Optional[UUID] = None
  26. building: Optional[UUID] = None
  27. class GatewayItem(BaseModel):
  28. id: UUID
  29. name: str
  30. mac: Optional[str] = None
  31. status: Optional[Union[str, bool]] = None
  32. model: Optional[str] = None
  33. ip: Optional[str] = None
  34. position: Optional[str] = None
  35. x: Optional[float] = None
  36. y: Optional[float] = None
  37. notes: Optional[str] = None
  38. floor: Optional[UUID] = None
  39. building: Optional[UUID] = None
  40. class TrackerItem(BaseModel):
  41. id: UUID
  42. name: str
  43. mac: Optional[str] = None
  44. status: Optional[str] = None
  45. model: Optional[str] = None
  46. position: Optional[str] = None
  47. notes: Optional[str] = None
  48. x: Optional[float] = None
  49. y: Optional[float] = None
  50. floor: Optional[UUID] = None
  51. building: Optional[UUID] = None
  52. battery: Optional[str] = None
  53. temperature: Optional[str] = None
  54. acceleration: Optional[str] = None
  55. heartRate: Optional[str] = None
  56. buttonPress: Optional[bool] = None
  57. class SettingItem(BaseModel):
  58. id: str
  59. name: str
  60. role: str
  61. unit: int
  62. update: Optional[int] = None
  63. debug: bool
  64. debugFields: Optional[List[str]] = None
  65. language: str
  66. class OperatorItem(BaseModel):
  67. id: UUID
  68. name: str
  69. phone: Optional[str] = None
  70. zones: List[UUID]
  71. groups: Optional[str] = None
  72. notes: Optional[str] = None
  73. building: Optional[UUID] = None
  74. class SubjectItem(BaseModel):
  75. id: UUID
  76. name: str
  77. role: Optional[str] = None
  78. phone: Optional[str] = None
  79. tracker: UUID
  80. groups: Optional[str] = None
  81. notes: Optional[str] = None
  82. building: Optional[UUID] = None
  83. class AlarmItem(BaseModel):
  84. id: UUID
  85. timestamp: Optional[str] = None
  86. type: Optional[str] = None
  87. status: Optional[str] = None
  88. gateway: Optional[UUID] = None
  89. gatewayMac: Optional[str] = None
  90. tracker: Optional[UUID] = None
  91. trackerBid: Optional[str] = None
  92. subject: Optional[UUID] = None
  93. subjectName: Optional[str] = None
  94. operator: Optional[UUID] = None
  95. operatorName: Optional[str] = None
  96. zone: Optional[UUID] = None
  97. zoneName: Optional[str] = None
  98. building: Optional[UUID] = None
  99. class TrackItem(BaseModel):
  100. id: UUID
  101. timestamp: Optional[str] = None
  102. type: Optional[str] = None
  103. status: Optional[str] = None
  104. gateway: Optional[UUID] = None
  105. gatewayMac: Optional[str] = None
  106. tracker: Optional[UUID] = None
  107. trackerMac: Optional[str] = None
  108. subject: Optional[UUID] = None
  109. subjectName: Optional[str] = None
  110. floor: Optional[UUID] = None
  111. signal: Optional[float] = None
  112. building: Optional[UUID] = None
  113. class TrackerZoneItem(BaseModel):
  114. id: UUID
  115. zoneList: List[UUID]
  116. tracker: UUID
  117. days: Optional[str] = None
  118. time: Optional[str] = None
  119. class ConfigItem(BaseModel):
  120. name: str
  121. min: str
  122. max: str
  123. pattern: str
  124. configs:List[str]
  125. propery: List[str]
  126. offset: str