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

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