# /opt/docker/dev/service_finder/backend/app/tests_internal/seeds/seed_honda.py
import asyncio
import logging
from sqlalchemy import select
from app.database import AsyncSessionLocal
from app.models import AssetCatalog
from app.models.marketplace.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())