# /opt/docker/dev/service_finder/backend/app/seed_honda.py import asyncio import logging from sqlalchemy import select from app.database import AsyncSessionLocal from app.models.asset import AssetCatalog from app.models.staged_data import DiscoveryParameter # Logolás beállítása logging.basicConfig(level=logging.INFO, format='%(asctime)s [%(levelname)s] Sentinel-Seed: %(message)s') logger = logging.getLogger("Honda-Seeder") async def seed_honda(): """ Honda specifikus alapozás az MB2.0 MDM (Master Data Management) szerint. Létrehozza a katalógus-vázat és a robot-feladatokat. """ async with AsyncSessionLocal() as db: logger.info("🚀 Honda márka-ökoszisztéma inicializálása...") # 1. LOGIKA: Robot Discovery feladatok rögzítése # Ezzel mondjuk meg a Hunter robotnak, hogy keressen rá minden Honda variánsra discovery_tasks = [ DiscoveryParameter(make="HONDA", vehicle_class="car", city="BUDAPEST", keyword="repair", is_active=True), DiscoveryParameter(make="HONDA", vehicle_class="motorcycle", city="BUDAPEST", keyword="service", is_active=True) ] for task in discovery_tasks: # Megnézzük, van-e már ilyen feladat stmt = select(DiscoveryParameter).where( DiscoveryParameter.make == task.make, DiscoveryParameter.vehicle_class == task.vehicle_class ) exists = (await db.execute(stmt)).scalar_one_or_none() if not exists: db.add(task) # 2. LOGIKA: Népszerű modellek (Arany Rekordok) betöltése # Ezek a "Starter" adatok, amik azonnal elérhetők a felhasználóknak honda_models = [ # Személyautók {"model": "CIVIC", "gen": "X (2015-2021)", "class": "car"}, {"model": "ACCORD", "gen": "X (2017-)", "class": "car"}, {"model": "CR-V", "gen": "V (2016-)", "class": "car"}, {"model": "JAZZ", "gen": "IV (2020-)", "class": "car"}, # Motorkerékpárok {"model": "CB500X", "gen": "PC64 (2019-)", "class": "motorcycle"}, {"model": "AFRICA TWIN", "gen": "CRF1100L", "class": "motorcycle"}, {"model": "NC750X", "gen": "RH09 (2021-)", "class": "motorcycle"} ] for m in honda_models: # Ellenőrizzük az AssetCatalog-ban (MDM tábla) stmt = select(AssetCatalog).where( AssetCatalog.make == "HONDA", AssetCatalog.model == m["model"], AssetCatalog.generation == m["gen"] ) exists = (await db.execute(stmt)).scalar_one_or_none() if not exists: db.add(AssetCatalog( make="HONDA", model=m["model"], generation=m["gen"], vehicle_class=m["class"], factory_data={"source": "manual_priority_seed"} # MDM metaadat )) await db.commit() logger.info("✅ Honda (Autó & Motor) katalógus váz sikeresen felépítve!") if __name__ == "__main__": asyncio.run(seed_honda())