Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

229 righe
6.6 KiB

  1. from collections.abc import Mapping
  2. from typing import Any, TypeVar, Union
  3. from uuid import UUID
  4. from attrs import define as _attrs_define
  5. from attrs import field as _attrs_field
  6. from app_types import UNSET, Unset
  7. T = TypeVar("T", bound="TrackItem")
  8. @_attrs_define
  9. class TrackItem:
  10. """Log of a state change of a tracker with respect to a gateway
  11. Attributes:
  12. id (str):
  13. time (Union[Unset, str]): Time
  14. type_ (Union[Unset, str]): Type
  15. status (Union[Unset, str]): Status
  16. gateway (Union[Unset, UUID]): Gateway
  17. gateway_mac (Union[Unset, str]): Gateway MAC
  18. gateway_name (Union[Unset, str]): Gateway name
  19. tracker (Union[Unset, UUID]): Tracker
  20. tracker_mac (Union[Unset, str]): Tracker MAC
  21. tracker_name (Union[Unset, str]): Tracker name
  22. subject (Union[Unset, str]): Subject
  23. subject_name (Union[Unset, str]): Subject name
  24. zone (Union[Unset, str]): Zone
  25. zone_name (Union[Unset, str]): Zone name
  26. signal (Union[Unset, float]):
  27. building (Union[Unset, UUID]): Building
  28. building_name (Union[Unset, str]): Building name
  29. """
  30. id: str
  31. time: Union[Unset, str] = UNSET
  32. type_: Union[Unset, str] = UNSET
  33. status: Union[Unset, str] = UNSET
  34. gateway: Union[Unset, UUID] = UNSET
  35. gateway_mac: Union[Unset, str] = UNSET
  36. gateway_name: Union[Unset, str] = UNSET
  37. tracker: Union[Unset, UUID] = UNSET
  38. tracker_mac: Union[Unset, str] = UNSET
  39. tracker_name: Union[Unset, str] = UNSET
  40. subject: Union[Unset, str] = UNSET
  41. subject_name: Union[Unset, str] = UNSET
  42. zone: Union[Unset, str] = UNSET
  43. zone_name: Union[Unset, str] = UNSET
  44. signal: Union[Unset, float] = UNSET
  45. building: Union[Unset, UUID] = UNSET
  46. building_name: Union[Unset, str] = UNSET
  47. additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
  48. def to_dict(self) -> dict[str, Any]:
  49. id = self.id
  50. time = self.time
  51. type_ = self.type_
  52. status = self.status
  53. gateway: Union[Unset, str] = UNSET
  54. if not isinstance(self.gateway, Unset):
  55. gateway = str(self.gateway)
  56. gateway_mac = self.gateway_mac
  57. gateway_name = self.gateway_name
  58. tracker: Union[Unset, str] = UNSET
  59. if not isinstance(self.tracker, Unset):
  60. tracker = str(self.tracker)
  61. tracker_mac = self.tracker_mac
  62. tracker_name = self.tracker_name
  63. subject = self.subject
  64. subject_name = self.subject_name
  65. zone = self.zone
  66. zone_name = self.zone_name
  67. signal = self.signal
  68. building: Union[Unset, str] = UNSET
  69. if not isinstance(self.building, Unset):
  70. building = str(self.building)
  71. building_name = self.building_name
  72. field_dict: dict[str, Any] = {}
  73. field_dict.update(self.additional_properties)
  74. field_dict.update(
  75. {
  76. "id": id,
  77. }
  78. )
  79. if time is not UNSET:
  80. field_dict["time"] = time
  81. if type_ is not UNSET:
  82. field_dict["type"] = type_
  83. if status is not UNSET:
  84. field_dict["status"] = status
  85. if gateway is not UNSET:
  86. field_dict["gateway"] = gateway
  87. if gateway_mac is not UNSET:
  88. field_dict["gatewayMac"] = gateway_mac
  89. if gateway_name is not UNSET:
  90. field_dict["gatewayName"] = gateway_name
  91. if tracker is not UNSET:
  92. field_dict["tracker"] = tracker
  93. if tracker_mac is not UNSET:
  94. field_dict["trackerMac"] = tracker_mac
  95. if tracker_name is not UNSET:
  96. field_dict["trackerName"] = tracker_name
  97. if subject is not UNSET:
  98. field_dict["subject"] = subject
  99. if subject_name is not UNSET:
  100. field_dict["subjectName"] = subject_name
  101. if zone is not UNSET:
  102. field_dict["zone"] = zone
  103. if zone_name is not UNSET:
  104. field_dict["zoneName"] = zone_name
  105. if signal is not UNSET:
  106. field_dict["signal"] = signal
  107. if building is not UNSET:
  108. field_dict["building"] = building
  109. if building_name is not UNSET:
  110. field_dict["buildingName"] = building_name
  111. return field_dict
  112. @classmethod
  113. def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
  114. d = dict(src_dict)
  115. id = d.pop("id")
  116. time = d.pop("time", UNSET)
  117. type_ = d.pop("type", UNSET)
  118. status = d.pop("status", UNSET)
  119. _gateway = d.pop("gateway", UNSET)
  120. gateway: Union[Unset, UUID]
  121. if isinstance(_gateway, Unset):
  122. gateway = UNSET
  123. else:
  124. gateway = UUID(_gateway)
  125. gateway_mac = d.pop("gatewayMac", UNSET)
  126. gateway_name = d.pop("gatewayName", UNSET)
  127. _tracker = d.pop("tracker", UNSET)
  128. tracker: Union[Unset, UUID]
  129. if isinstance(_tracker, Unset):
  130. tracker = UNSET
  131. else:
  132. tracker = UUID(_tracker)
  133. tracker_mac = d.pop("trackerMac", UNSET)
  134. tracker_name = d.pop("trackerName", UNSET)
  135. subject = d.pop("subject", UNSET)
  136. subject_name = d.pop("subjectName", UNSET)
  137. zone = d.pop("zone", UNSET)
  138. zone_name = d.pop("zoneName", UNSET)
  139. signal = d.pop("signal", UNSET)
  140. _building = d.pop("building", UNSET)
  141. building: Union[Unset, UUID]
  142. if isinstance(_building, Unset):
  143. building = UNSET
  144. else:
  145. building = UUID(_building)
  146. building_name = d.pop("buildingName", UNSET)
  147. track_item = cls(
  148. id=id,
  149. time=time,
  150. type_=type_,
  151. status=status,
  152. gateway=gateway,
  153. gateway_mac=gateway_mac,
  154. gateway_name=gateway_name,
  155. tracker=tracker,
  156. tracker_mac=tracker_mac,
  157. tracker_name=tracker_name,
  158. subject=subject,
  159. subject_name=subject_name,
  160. zone=zone,
  161. zone_name=zone_name,
  162. signal=signal,
  163. building=building,
  164. building_name=building_name,
  165. )
  166. track_item.additional_properties = d
  167. return track_item
  168. @property
  169. def additional_keys(self) -> list[str]:
  170. return list(self.additional_properties.keys())
  171. def __getitem__(self, key: str) -> Any:
  172. return self.additional_properties[key]
  173. def __setitem__(self, key: str, value: Any) -> None:
  174. self.additional_properties[key] = value
  175. def __delitem__(self, key: str) -> None:
  176. del self.additional_properties[key]
  177. def __contains__(self, key: str) -> bool:
  178. return key in self.additional_properties