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))