|
- from collections.abc import Mapping
- from typing import Any, TypeVar, Union
- from uuid import UUID
-
- from attrs import define as _attrs_define
- from attrs import field as _attrs_field
-
- from app_types import UNSET, Unset
-
- T = TypeVar("T", bound="TrackItem")
-
-
- @_attrs_define
- class TrackItem:
- """Log of a state change of a tracker with respect to a gateway
-
- Attributes:
- id (str):
- time (Union[Unset, str]): Time
- type_ (Union[Unset, str]): Type
- status (Union[Unset, str]): Status
- gateway (Union[Unset, UUID]): Gateway
- gateway_mac (Union[Unset, str]): Gateway MAC
- gateway_name (Union[Unset, str]): Gateway name
- tracker (Union[Unset, UUID]): Tracker
- tracker_mac (Union[Unset, str]): Tracker MAC
- tracker_name (Union[Unset, str]): Tracker name
- subject (Union[Unset, str]): Subject
- subject_name (Union[Unset, str]): Subject name
- zone (Union[Unset, str]): Zone
- zone_name (Union[Unset, str]): Zone name
- signal (Union[Unset, float]):
- building (Union[Unset, UUID]): Building
- building_name (Union[Unset, str]): Building name
- """
-
- id: str
- time: Union[Unset, str] = UNSET
- type_: Union[Unset, str] = UNSET
- status: Union[Unset, str] = UNSET
- gateway: Union[Unset, UUID] = UNSET
- gateway_mac: Union[Unset, str] = UNSET
- gateway_name: Union[Unset, str] = UNSET
- tracker: Union[Unset, UUID] = UNSET
- tracker_mac: Union[Unset, str] = UNSET
- tracker_name: Union[Unset, str] = UNSET
- subject: Union[Unset, str] = UNSET
- subject_name: Union[Unset, str] = UNSET
- zone: Union[Unset, str] = UNSET
- zone_name: Union[Unset, str] = UNSET
- signal: Union[Unset, float] = UNSET
- building: Union[Unset, UUID] = UNSET
- building_name: Union[Unset, str] = UNSET
- additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
-
- def to_dict(self) -> dict[str, Any]:
- id = self.id
-
- time = self.time
-
- type_ = self.type_
-
- status = self.status
-
- gateway: Union[Unset, str] = UNSET
- if not isinstance(self.gateway, Unset):
- gateway = str(self.gateway)
-
- gateway_mac = self.gateway_mac
-
- gateway_name = self.gateway_name
-
- tracker: Union[Unset, str] = UNSET
- if not isinstance(self.tracker, Unset):
- tracker = str(self.tracker)
-
- tracker_mac = self.tracker_mac
-
- tracker_name = self.tracker_name
-
- subject = self.subject
-
- subject_name = self.subject_name
-
- zone = self.zone
-
- zone_name = self.zone_name
-
- signal = self.signal
-
- building: Union[Unset, str] = UNSET
- if not isinstance(self.building, Unset):
- building = str(self.building)
-
- building_name = self.building_name
-
- field_dict: dict[str, Any] = {}
- field_dict.update(self.additional_properties)
- field_dict.update(
- {
- "id": id,
- }
- )
- if time is not UNSET:
- field_dict["time"] = time
- if type_ is not UNSET:
- field_dict["type"] = type_
- if status is not UNSET:
- field_dict["status"] = status
- if gateway is not UNSET:
- field_dict["gateway"] = gateway
- if gateway_mac is not UNSET:
- field_dict["gatewayMac"] = gateway_mac
- if gateway_name is not UNSET:
- field_dict["gatewayName"] = gateway_name
- if tracker is not UNSET:
- field_dict["tracker"] = tracker
- if tracker_mac is not UNSET:
- field_dict["trackerMac"] = tracker_mac
- if tracker_name is not UNSET:
- field_dict["trackerName"] = tracker_name
- if subject is not UNSET:
- field_dict["subject"] = subject
- if subject_name is not UNSET:
- field_dict["subjectName"] = subject_name
- if zone is not UNSET:
- field_dict["zone"] = zone
- if zone_name is not UNSET:
- field_dict["zoneName"] = zone_name
- if signal is not UNSET:
- field_dict["signal"] = signal
- if building is not UNSET:
- field_dict["building"] = building
- if building_name is not UNSET:
- field_dict["buildingName"] = building_name
-
- return field_dict
-
- @classmethod
- def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
- d = dict(src_dict)
- id = d.pop("id")
-
- time = d.pop("time", UNSET)
-
- type_ = d.pop("type", UNSET)
-
- status = d.pop("status", UNSET)
-
- _gateway = d.pop("gateway", UNSET)
- gateway: Union[Unset, UUID]
- if isinstance(_gateway, Unset):
- gateway = UNSET
- else:
- gateway = UUID(_gateway)
-
- gateway_mac = d.pop("gatewayMac", UNSET)
-
- gateway_name = d.pop("gatewayName", UNSET)
-
- _tracker = d.pop("tracker", UNSET)
- tracker: Union[Unset, UUID]
- if isinstance(_tracker, Unset):
- tracker = UNSET
- else:
- tracker = UUID(_tracker)
-
- tracker_mac = d.pop("trackerMac", UNSET)
-
- tracker_name = d.pop("trackerName", UNSET)
-
- subject = d.pop("subject", UNSET)
-
- subject_name = d.pop("subjectName", UNSET)
-
- zone = d.pop("zone", UNSET)
-
- zone_name = d.pop("zoneName", UNSET)
-
- signal = d.pop("signal", UNSET)
-
- _building = d.pop("building", UNSET)
- building: Union[Unset, UUID]
- if isinstance(_building, Unset):
- building = UNSET
- else:
- building = UUID(_building)
-
- building_name = d.pop("buildingName", UNSET)
-
- track_item = cls(
- id=id,
- time=time,
- type_=type_,
- status=status,
- gateway=gateway,
- gateway_mac=gateway_mac,
- gateway_name=gateway_name,
- tracker=tracker,
- tracker_mac=tracker_mac,
- tracker_name=tracker_name,
- subject=subject,
- subject_name=subject_name,
- zone=zone,
- zone_name=zone_name,
- signal=signal,
- building=building,
- building_name=building_name,
- )
-
- track_item.additional_properties = d
- return track_item
-
- @property
- def additional_keys(self) -> list[str]:
- return list(self.additional_properties.keys())
-
- def __getitem__(self, key: str) -> Any:
- return self.additional_properties[key]
-
- def __setitem__(self, key: str, value: Any) -> None:
- self.additional_properties[key] = value
-
- def __delitem__(self, key: str) -> None:
- del self.additional_properties[key]
-
- def __contains__(self, key: str) -> bool:
- return key in self.additional_properties
|