#!/usr/bin/env python3 """ Reusable DB cross-reference checker for the exotic vehicle database. Usage: Copy to /tmp/check_db.py, edit the `checks` dict, then run: python3 /tmp/check_db.py DB path: /root/portal-mockup/vehicles.json DB structure: {Make: {Model: {Year: HP, ...}, ...}, ...} """ import json DB_PATH = "/root/portal-mockup/vehicles.json" v = json.load(open(DB_PATH)) # Add vehicles to check here. Format: # "Label": ("Make", "Model substring to search for") # For new makes, use ("Make", None) — reports whether the make exists at all. checks = { # --- EXAMPLES (replace with current checks) --- # "Ferrari 12Cilindri": ("Ferrari", "12Cilindri"), # "Kimera K39": ("Kimera", None), # "Lamborghini Urus SE": ("Lamborghini", "Urus SE"), } for label, (make, model_hint) in checks.items(): if make in v: if model_hint: matches = [m for m in v[make].keys() if model_hint.lower() in m.lower()] if matches: yrs_2025 = [] for m in matches: yr_list = sorted([int(y) for y in v[make][m].keys() if y.isdigit()]) recent = [y for y in yr_list if y >= 2025] if recent: yrs_2025.append((m, recent, {str(y): v[make][m][str(y)] for y in recent})) if yrs_2025: print(f"{label}: ✅ IN DB (2025+ yrs) - {yrs_2025}") else: print(f"{label}: ⚠️ IN DB but no 2025+ years - {[(m, sorted(v[make][m].keys())) for m in matches]}") else: print(f"{label}: ❌ MISSING (make '{make}' exists but model not found)") similar = [m for m in v[make].keys() if any(w in m.lower() for w in model_hint.lower().split())] if similar: print(f" Similar: {similar}") else: print(f"{label}: ✅ MAKE exists — models: {sorted(v[make].keys())[:15]}") else: print(f"{label}: ❌ MAKE '{make}' not in DB") print(f"\nDB stats — {len(v)} makes, {sum(len(models) for models in v.values())} models")