hoangs's picture
Upload model.py
6fa6e7f verified
from typing import Literal, TypedDict
MaintTaskType = Literal["empty_bin", "clean_brush", "clean_filter", "firmware_update", "sensor_check"]
class MaintReminder(TypedDict):
should_remind: bool
urgency: Literal["low", "medium", "high"]
reason: str
def decide_maintenance_reminder(task_type: MaintTaskType, days_since_last: int) -> MaintReminder:
"""Heuristic for when to remind about simple maintenance tasks."""
if task_type == "empty_bin":
if days_since_last >= 1:
return {"should_remind": True, "urgency": "high", "reason": "Dust bin should be emptied daily."}
return {"should_remind": False, "urgency": "low", "reason": "Bin recently emptied."}
if task_type == "clean_brush":
if days_since_last >= 7:
return {"should_remind": True, "urgency": "medium", "reason": "Brush should be cleaned weekly."}
return {"should_remind": False, "urgency": "low", "reason": "Brush cleaning not yet due."}
if task_type == "clean_filter":
if days_since_last >= 14:
return {"should_remind": True, "urgency": "medium", "reason": "Filter cleaning recommended every 2 weeks."}
return {"should_remind": False, "urgency": "low", "reason": "Filter cleaning not yet due."}
if task_type == "sensor_check":
if days_since_last >= 30:
return {"should_remind": True, "urgency": "low", "reason": "Monthly sensor self-check is due."}
return {"should_remind": False, "urgency": "low", "reason": "Sensor check recently performed."}
if task_type == "firmware_update":
if days_since_last >= 60:
return {"should_remind": True, "urgency": "low", "reason": "Check for firmware updates every few months."}
return {"should_remind": False, "urgency": "low", "reason": "Firmware update not yet necessary."}
return {"should_remind": False, "urgency": "low", "reason": "Unknown task type."}
if __name__ == "__main__":
tests = [
("empty_bin", 2),
("clean_brush", 8),
("clean_filter", 10),
("sensor_check", 31),
("firmware_update", 90),
]
for t, d in tests:
print(t, d, "->", decide_maintenance_reminder(t, d))