Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

262 строки
6.4 KiB

  1. from pydantic import BaseModel
  2. from typing import Optional
  3. from uuid import UUID
  4. from typing import Optional, Union, Literal
  5. from typing import List
  6. from typing import Tuple
  7. class BuildingItem(BaseModel):
  8. id: UUID
  9. name: str
  10. city: Optional[str] = None
  11. address: Optional[str] = None
  12. latitude: Optional[float] = None
  13. longitude: Optional[float] = None
  14. class FloorItem(BaseModel):
  15. id: UUID
  16. name: str
  17. floornumber: int
  18. image: Optional[str] = None
  19. description: Optional[str] = None
  20. scale: Optional[float] = None
  21. building: Optional[UUID] = None
  22. class ZoneItem(BaseModel):
  23. id: UUID
  24. name: str
  25. <<<<<<< HEAD
  26. groups: Optional[List[UUID]] = None
  27. =======
  28. >>>>>>> Tracker_bug_fix_20260429
  29. floor: Optional[UUID] = None
  30. building: Optional[UUID] = None
  31. class ZoneAreaPointItem(BaseModel):
  32. x: float
  33. y: float
  34. class ZoneAreaDefinitionItem(BaseModel):
  35. UUID: UUID
  36. ZoneUUID: UUID
  37. points: List[ZoneAreaPointItem]
  38. class GatewayItem(BaseModel):
  39. id: UUID
  40. name: str
  41. mac: Optional[str] = None
  42. status: Optional[Union[str, bool]] = None
  43. model: Optional[str] = None
  44. ip: Optional[str] = None
  45. position: Optional[str] = None
  46. x: Optional[float] = None
  47. y: Optional[float] = None
  48. notes: Optional[str] = None
  49. floor: Optional[UUID] = None
  50. building: Optional[UUID] = None
  51. zone: Optional[UUID] = None
  52. class TrackerItem(BaseModel):
  53. id: UUID
  54. name: str
  55. mac: Optional[str] = None
  56. status: Optional[str] = None
  57. model: Optional[str] = None
  58. position: Optional[str] = None
  59. notes: Optional[str] = None
  60. x: Optional[float] = None
  61. y: Optional[float] = None
  62. floor: Optional[UUID] = None
  63. building: Optional[UUID] = None
  64. battery: Optional[str] = None
  65. temperature: Optional[str] = None
  66. acceleration: Optional[str] = None
  67. heartRate: Optional[str] = None
  68. buttonPress: Optional[bool] = None
  69. class SettingItem(BaseModel):
  70. id: str
  71. name: str
  72. role: str
  73. unit: int
  74. update: Optional[int] = None
  75. debug: bool
  76. debugFields: Optional[List[str]] = None
  77. language: str
  78. class CoreSettingsItem(BaseModel):
  79. ID: int
  80. current_algorithm: str
  81. location_confidence: int
  82. last_seen_threshold: int
  83. beacon_metric_size: int
  84. HA_send_interval: int
  85. HA_send_changes_only: bool
  86. RSSI_enforce_threshold: bool
  87. RSSI_min_threshold: int
  88. class CoreSettingsUpdateItem(BaseModel):
  89. current_algorithm: str
  90. last_seen_threshold: int
  91. beacon_metric_size: int
  92. HA_send_interval: int
  93. HA_send_changes_only: bool
  94. RSSI_enforce_threshold: bool
  95. RSSI_min_threshold: int
  96. location_confidence: Optional[int] = None
  97. class GuiConfigItem(BaseModel):
  98. id: str
  99. name: Optional[str] = None
  100. role: Optional[Literal["developer", "administrator", "user"]] = None
  101. debug: Optional[bool] = None
  102. class OperatorItem(BaseModel):
  103. id: UUID
  104. name: str
  105. phone: Optional[str] = None
  106. zones: List[UUID]
  107. groups: Optional[str] = None
  108. notes: Optional[str] = None
  109. building: Optional[UUID] = None
  110. class SubjectItem(BaseModel):
  111. id: UUID
  112. name: str
  113. role: Optional[str] = None
  114. phone: Optional[str] = None
  115. tracker: UUID
  116. groups: Optional[str] = None
  117. notes: Optional[str] = None
  118. building: Optional[UUID] = None
  119. class AlarmItem(BaseModel):
  120. id: UUID
  121. timestamp: Optional[str] = None
  122. type: Optional[str] = None
  123. status: Optional[str] = None
  124. gateway: Optional[UUID] = None
  125. gatewayMac: Optional[str] = None
  126. tracker: Optional[UUID] = None
  127. trackerBid: Optional[str] = None
  128. subject: Optional[UUID] = None
  129. subjectName: Optional[str] = None
  130. operator: Optional[UUID] = None
  131. operatorName: Optional[str] = None
  132. zone: Optional[UUID] = None
  133. zoneName: Optional[str] = None
  134. building: Optional[UUID] = None
  135. class AlarmCoreItem(BaseModel):
  136. id: UUID
  137. tracker_id: UUID
  138. type: str
  139. status: str
  140. timestamp: str
  141. operator: Optional[UUID] = None
  142. resolution_timestamp: Optional[str] = None
  143. class AlarmStatusUpdateItem(BaseModel):
  144. id: UUID
  145. status: str
  146. class TrackItem(BaseModel):
  147. id: UUID
  148. timestamp: Optional[str] = None
  149. type: Optional[str] = None
  150. status: Optional[str] = None
  151. gateway: Optional[UUID] = None
  152. gatewayMac: Optional[str] = None
  153. tracker: Optional[UUID] = None
  154. trackerMac: Optional[str] = None
  155. subject: Optional[UUID] = None
  156. subjectName: Optional[str] = None
  157. floor: Optional[UUID] = None
  158. signal: Optional[float] = None
  159. building: Optional[UUID] = None
  160. x: Optional[float] = None
  161. y: Optional[float] = None
  162. z: Optional[float] = None
  163. class TrackHistoryItem(BaseModel):
  164. ID: Optional[int] = None
  165. id: UUID
  166. timestamp: Optional[str] = None
  167. type: Optional[str] = None
  168. status: Optional[str] = None
  169. gateway: Optional[UUID] = None
  170. gatewayMac: Optional[str] = None
  171. tracker: Optional[UUID] = None
  172. trackerMac: Optional[str] = None
  173. subject: Optional[UUID] = None
  174. subjectName: Optional[str] = None
  175. floor: Optional[UUID] = None
  176. signal: Optional[float] = None
  177. building: Optional[UUID] = None
  178. x: Optional[float] = None
  179. y: Optional[float] = None
  180. z: Optional[float] = None
  181. class TrackerZoneItem(BaseModel):
  182. id: UUID
  183. <<<<<<< HEAD
  184. name: str
  185. =======
  186. name: Optional[str] = None
  187. zoneList: List[UUID]
  188. >>>>>>> Tracker_bug_fix_20260429
  189. tracker: UUID
  190. zoneList: list[UUID]
  191. days: Optional[str] = None
  192. time: Optional[str] = None
  193. class ConfigItem(BaseModel):
  194. name: str
  195. min: str
  196. max: str
  197. pattern: str
  198. configs:List[str]
  199. propery: List[str]
  200. offset: str
  201. class CoreSettingsItem(BaseModel):
  202. ID: int
  203. current_algorithm: str
  204. location_confidence: int
  205. last_seen_threshold: int
  206. beacon_metric_size: int
  207. HA_send_interval: int
  208. HA_send_changes_only: bool
  209. RSSI_enforce_threshold: bool
  210. RSSI_min_threshold: int
  211. class CoreSettingsUpdateItem(BaseModel):
  212. current_algorithm: str
  213. last_seen_threshold: int
  214. beacon_metric_size: int
  215. HA_send_interval: int
  216. HA_send_changes_only: bool
  217. RSSI_enforce_threshold: bool
  218. RSSI_min_threshold: int
  219. location_confidence: Optional[int] = None
  220. class CalibrationMetadata(BaseModel):
  221. pixel_ratio: float
  222. calibrated: bool
  223. origin: Tuple[int, int]
  224. grid_size: int
  225. #??? Da verificate ???
  226. class DownloadFileImmage():
  227. name : str
  228. immage_path : str