1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
from __future__ import annotations
from .time import parse_datetime
class Pin:
def __init__(self, data):
self._pin_id = data["_id"]
self._lock_id = data["lockID"]
self._user_id = data["userID"]
self._state = data["state"]
self._pin = data["pin"]
self._slot = data["slot"]
self._access_type = data["accessType"]
self._first_name = data["firstName"]
self._last_name = data["lastName"]
self._unverified = data["unverified"]
self._created_at = data["createdAt"]
self._updated_at = data["updatedAt"]
self._loaded_date = data["loadedDate"]
# Times for temporary access codes
self._access_start_time = data.get("accessStartTime")
self._access_end_time = data.get("accessEndTime")
self._access_times = data.get("accessTimes")
@property
def pin_id(self):
return self._pin_id
@property
def lock_id(self):
return self._lock_id
@property
def user_id(self):
return self._user_id
@property
def state(self):
return self._state
@property
def pin(self):
return self._pin
@property
def slot(self):
return self._slot
@property
def access_type(self):
return self._access_type
@property
def first_name(self):
return self._first_name
@property
def last_name(self):
return self._last_name
@property
def unverified(self):
return self._unverified
@property
def created_at(self):
return parse_datetime(self._created_at)
@property
def updated_at(self):
return parse_datetime(self._updated_at)
@property
def loaded_date(self):
return parse_datetime(self._loaded_date)
@property
def access_start_time(self):
if not self._access_start_time:
return None
return parse_datetime(self._access_start_time)
@property
def access_end_time(self):
if not self._access_end_time:
return None
return parse_datetime(self._access_end_time)
@property
def access_times(self):
if not self._access_times:
return None
return parse_datetime(self._access_times)
def __repr__(self):
return f"Pin(id={self.pin_id} firstName={self.first_name}, lastName={self.last_name})"
|