Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok

This commit is contained in:
Kincses
2026-03-04 02:03:03 +01:00
commit 250f4f4b8f
7942 changed files with 449625 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
# /opt/docker/dev/service_finder/backend/app/tests_internal/seeds/seed_catalog.py
"""
🌱 MB2.0 KATALÓGUS ÉS ROBOT SEEDER
----------------------------------
CÉL: A járműkatalógus alapadatainak és a robotok munkalistájának feltöltése.
FUNKCIÓK:
1. DiscoveryParameter: Azon városok rögzítése, ahol a Scout robot keresni fog.
2. CatalogDiscovery: Azon márkák rögzítése, amiket a Robot 0/1 fel fog dolgozni.
3. AssetCatalog: 'Arany' (már validált) technikai rekordok beszúrása.
JAVÍTÁSOK:
- 'last_error' oszlop eltávolítva (mivel az adatbázisban nem létezik).
- 'attempts' mező kényszerített 0 értékkel (NOT NULL kényszer miatt).
"""
import asyncio
import logging
from app.database import AsyncSessionLocal
from app.models.asset import AssetCatalog, CatalogDiscovery
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("Seed-Catalog")
async def quick_seed():
""" Katalógus és Discovery adatok inicializálása. """
async with AsyncSessionLocal() as db:
logger.info("🚀 Katalógus alapozás indítása...")
try:
# 1. Felderítendő Városok (DiscoveryParameter)
# A Scout robot ezekben a városokban kezdi meg a szervizek kutatását.
cities = [
("BUDAPEST", "HU"),
("DEBRECEN", "HU"),
("GYŐR", "HU"),
("SZEGED", "HU")
]
for city_name, country in cities:
db.add(DiscoveryParameter(
city=city_name,
country_code=country,
is_active=True
))
# 2. Felderítendő Márkák és Típusok (CatalogDiscovery)
# Ezeket a rekordokat fogja a Robot 0 és Robot 1 feldolgozni a háttérben.
discovery_queue = [
("SUZUKI", "ALL"),
("TOYOTA", "ALL"),
("HONDA", "ALL"),
("SKODA", "ALL"),
("YAMAHA", "ALL")
]
for m, mod in discovery_queue:
# Az attempts=0 kötelező a DB kényszer miatt
db.add(CatalogDiscovery(
make=m,
model=mod,
status="pending",
attempts=0
))
# 3. Arany rekordok (AssetCatalog / vehicle_catalog tábla)
# Példa adatok, amik már átmentek a validációs folyamaton.
gold_data = [
AssetCatalog(
make="SUZUKI",
model="VITARA",
generation="LY (2015-)",
fuel_type="petrol",
factory_data={"segment": "SUV", "origin": "Hungary"}
),
AssetCatalog(
make="SKODA",
model="OCTAVIA",
generation="IV (2020-)",
fuel_type="diesel",
factory_data={"segment": "Sedan/Combi"}
)
]
db.add_all(gold_data)
# Mentés végrehajtása
await db.commit()
logger.info("✨ Katalógus és Discovery paraméterek sikeresen rögzítve!")
except Exception as e:
await db.rollback()
logger.error(f"❌ HIBA a katalógus feltöltésekor: {e}")
raise e
if __name__ == "__main__":
asyncio.run(quick_seed())