serviceadvisor / car_advisor /suggestions.py
viswanani's picture
Upload 22 files
1c7bc31 verified
from typing import Dict, Any, List
from .config import PM_THRESHOLDS
def predictive_maintenance(car_year: int = None, mileage_km: int = None) -> List[str]:
tips = []
if mileage_km is not None:
if mileage_km % PM_THRESHOLDS["engine_oil"] > PM_THRESHOLDS["engine_oil"] - 1000:
tips.append("Engine oil service due soon based on mileage.")
if mileage_km % PM_THRESHOLDS["tire_rotation"] > PM_THRESHOLDS["tire_rotation"] - 500:
tips.append("Consider tire rotation and balancing.")
if mileage_km > 50000:
tips.append("Inspect suspension components (shocks/struts) for wear.")
if mileage_km > 80000:
tips.append("Check timing belt/chain and water pump as per manufacturer schedule.")
if car_year is not None and car_year < 2015:
tips.append("Vehicle age suggests comprehensive electrical & rubber parts inspection.")
if not tips:
tips.append("No immediate predictive maintenance items flagged.")
return tips
def advanced_suggestions(top_issues: Dict[str, Any]) -> List[str]:
tips = []
if "engine_leak" in top_issues:
tips.append("After fixing leak, clean engine bay and monitor oil level weekly for 1 month.")
if "brake_wear" in top_issues:
tips.append("Bed-in new pads and avoid hard braking for first 200 km.")
if "flat_tire" in top_issues:
tips.append("Check alignment and inspect other tires for embedded nails/screws.")
if "rust" in top_issues:
tips.append("Apply rust protection and inspect underbody after monsoon season.")
if "cracked_windshield" in top_issues:
tips.append("Avoid potholes and sudden temperature changes until replacement.")
return tips