You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

229 regels
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