hoangs's picture
Upload model.py
d05aa4a verified
from typing import TypedDict, List
class DoorSummary(TypedDict):
total_events: int
opened_count: int
closed_count: int
locked_count: int
unlocked_count: int
def summarize_door_events(events: List[dict], door_id: str) -> DoorSummary:
"""Summarize events for a single door_id."""
opened = closed = locked = unlocked = 0
for e in events:
if str(e.get("door_id")) != door_id:
continue
etype = str(e.get("event_type", "")).lower()
if etype == "opened":
opened += 1
elif etype == "closed":
closed += 1
elif etype == "locked":
locked += 1
elif etype == "unlocked":
unlocked += 1
total = opened + closed + locked + unlocked
return {
"total_events": total,
"opened_count": opened,
"closed_count": closed,
"locked_count": locked,
"unlocked_count": unlocked,
}
if __name__ == "__main__":
events = [
{"door_id": "front_door", "event_type": "opened"},
{"door_id": "front_door", "event_type": "closed"},
{"door_id": "front_door", "event_type": "locked"},
]
print(summarize_door_events(events, "front_door"))