1155 lines
62 KiB
Python
1155 lines
62 KiB
Python
"""
|
|
Seed script: Feltölti a marketplace.expertise_tags táblát a teljes 4-szintű
|
|
autóipari taxonómiával (Master Taxonomy).
|
|
|
|
Idempotens: Törli a meglévő is_official=True rekordokat, de MEGHAGYJA
|
|
a felhasználók által létrehozott (is_official=False) címkéket.
|
|
|
|
Architektúra:
|
|
Level 0: Járműtípus (Vehicle Type)
|
|
Level 1: Iparág/Főcsoport (Industry)
|
|
Level 2: Szakma (Profession)
|
|
Level 3: Specifikus feladat/címke (Specific Tag)
|
|
|
|
Futtatás:
|
|
docker exec sf_api python3 /app/backend/scripts/seed_expertise_taxonomy.py
|
|
"""
|
|
|
|
import asyncio
|
|
import logging
|
|
from sqlalchemy import select, func, delete
|
|
from app.db.session import AsyncSessionLocal
|
|
from app.models.marketplace.service import ExpertiseTag
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# ──────────────────────────────────────────────
|
|
# TELJES 4-SZINTŰ TAXONÓMIA SZÓTÁR
|
|
# ──────────────────────────────────────────────
|
|
# Formátum:
|
|
# "key": { "name_hu", "name_en", "category", "search_keywords", "description",
|
|
# "children": { ... } }
|
|
# A szintek: 0=Járműtípus, 1=Iparág, 2=Szakma, 3=Specifikus feladat
|
|
|
|
# ──────────────────────────────────────────────
|
|
# UNIVERZÁLIS (JÁRMŰFÜGGETLEN) LEVEL 1 KATEGÓRIÁK
|
|
# ──────────────────────────────────────────────
|
|
# Ezek a kategóriák nem tartoznak egyetlen járműtípushoz sem (parent_id=None).
|
|
# A frontend "Univerzális Szolgáltatások" blokkban jelennek meg.
|
|
# Példák: Benzinkút, Étterem, Szállás
|
|
UNIVERSAL_CATEGORIES = {
|
|
"uzemanyag_toltoallomas": {
|
|
"name_hu": "Üzemanyag és Töltőállomás",
|
|
"name_en": "Fuel and Charging Station",
|
|
"category": "fuel_station",
|
|
"search_keywords": ["benzin", "dízel", "üzemanyag", "töltőállomás", "elektromos töltés", "fuel", "charging", "gas station"],
|
|
"description": "Üzemanyagtöltő állomások és elektromos jármű töltőállomások",
|
|
"children": {
|
|
"benzinkut": {
|
|
"name_hu": "Benzinkút",
|
|
"name_en": "Gas Station",
|
|
"category": "fuel_station",
|
|
"search_keywords": ["benzin", "dízel", "üzemanyag", "benzinkút", "töltőállomás", "gas station", "fuel", "petrol"],
|
|
"description": "Hagyományos üzemanyagtöltő állomások benzinnel, dízel üzemanyaggal",
|
|
},
|
|
"elektromos_toltoallomas": {
|
|
"name_hu": "Elektromos Töltőállomás",
|
|
"name_en": "EV Charging Station",
|
|
"category": "ev_charging",
|
|
"search_keywords": ["elektromos töltés", "töltőállomás", "EV charging", "electric car charging", "elektromos autó"],
|
|
"description": "Elektromos járművek töltőállomásai",
|
|
},
|
|
},
|
|
},
|
|
"etel_ital": {
|
|
"name_hu": "Étel és Ital",
|
|
"name_en": "Food and Drink",
|
|
"category": "food_drink",
|
|
"search_keywords": ["étterem", "büfé", "kávézó", "gyorsétterem", "vendéglő", "restaurant", "cafe", "food"],
|
|
"description": "Étterem, büfé, kávézó és egyéb vendéglátó egységek",
|
|
"children": {
|
|
"etterem": {
|
|
"name_hu": "Étterem",
|
|
"name_en": "Restaurant",
|
|
"category": "restaurant",
|
|
"search_keywords": ["étterem", "vendéglő", "restaurant", "fine dining", "étkezés"],
|
|
"description": "Étterem és vendéglátó egységek",
|
|
},
|
|
"gyorsetterem_bufe": {
|
|
"name_hu": "Gyorsétterem / Büfé",
|
|
"name_en": "Fast Food / Cafeteria",
|
|
"category": "fast_food",
|
|
"search_keywords": ["gyorsétterem", "büfé", "kávézó", "fast food", "cafe", "snack"],
|
|
"description": "Gyorséttermek, büfék és kávézók",
|
|
},
|
|
},
|
|
},
|
|
"szallas": {
|
|
"name_hu": "Szállás",
|
|
"name_en": "Accommodation",
|
|
"category": "accommodation",
|
|
"search_keywords": ["szállás", "motel", "hotel", "panzió", "vendégház", "accommodation", "hotel", "motel"],
|
|
"description": "Szálláshelyek, motelek, hotelek és panziók",
|
|
"children": {
|
|
"hotel": {
|
|
"name_hu": "Hotel",
|
|
"name_en": "Hotel",
|
|
"category": "hotel",
|
|
"search_keywords": ["hotel", "szálloda", "accommodation", "hotel"],
|
|
"description": "Hotelek és szállodák",
|
|
},
|
|
"motel_panzio": {
|
|
"name_hu": "Motel / Panzió",
|
|
"name_en": "Motel / Guesthouse",
|
|
"category": "motel",
|
|
"search_keywords": ["motel", "panzió", "vendégház", "guesthouse", "motel"],
|
|
"description": "Motelek, panziók és vendégházak",
|
|
},
|
|
},
|
|
},
|
|
"orzes_parkolas": {
|
|
"name_hu": "Őrzés és Parkolás",
|
|
"name_en": "Security and Parking",
|
|
"category": "parking",
|
|
"search_keywords": ["parkoló", "őrzött parkoló", "garázs", "parking", "garage"],
|
|
"description": "Őrzött parkolók, garázsok és parkolási szolgáltatások",
|
|
"children": {
|
|
"uni_orzott_parkolo": {
|
|
"name_hu": "Őrzött Parkoló",
|
|
"name_en": "Secured Parking",
|
|
"category": "secured_parking",
|
|
"search_keywords": ["őrzött parkoló", "parkoló", "secured parking", "parking lot"],
|
|
"description": "Őrzött parkolók és parkolóházak",
|
|
},
|
|
"uni_garazs": {
|
|
"name_hu": "Garázs",
|
|
"name_en": "Garage",
|
|
"category": "garage",
|
|
"search_keywords": ["garázs", "garage", "tároló", "storage"],
|
|
"description": "Garázsok és járműtárolók",
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
# Formátum:
|
|
# "key": { "name_hu", "name_en", "category", "search_keywords", "description",
|
|
# "children": { ... } }
|
|
# A szintek: 0=Járműtípus, 1=Iparág, 2=Szakma, 3=Specifikus feladat
|
|
|
|
TAXONOMY = {
|
|
# ════════════════════════════════════════════
|
|
# SZEMÉLYGÉPJÁRMŰ (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"szemelygepjarmu": {
|
|
"name_hu": "Személygépjármű",
|
|
"name_en": "Passenger Car",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["autó", "car", "személyautó", "passenger car", "személygépjármű"],
|
|
"description": "Személygépjárművekhez kapcsolódó szolgáltatások",
|
|
"children": {
|
|
# ─── Karbantartás, Szerviz és Javítás (Level 1) ───
|
|
"karbantartas_es_javitas": {
|
|
"name_hu": "Karbantartás, Szerviz és Javítás",
|
|
"name_en": "Maintenance, Service and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["karbantartás", "szerviz", "javítás", "maintenance", "repair"],
|
|
"description": "Gépjárművek karbantartása, szervizelése és javítása",
|
|
"children": {
|
|
"autoszerelo": {
|
|
"name_hu": "Autószerelő",
|
|
"name_en": "Car Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["szerelő", "autószerelő", "mechanic", "garage"],
|
|
"description": "Személygépjárművek mechanikai javítása, karbantartása",
|
|
"children": {
|
|
"motorolaj_csere": {
|
|
"name_hu": "Motorolaj csere",
|
|
"name_en": "Oil Change",
|
|
"category": "mechanic",
|
|
"search_keywords": ["olajcsere", "motorolaj", "olaj", "oil change"],
|
|
"description": "Motorolaj és olajszűrő cseréje"
|
|
},
|
|
"vezerles_csere": {
|
|
"name_hu": "Vezérlés csere",
|
|
"name_en": "Timing Belt Replacement",
|
|
"category": "mechanic",
|
|
"search_keywords": ["vezérlés", "vezérműszíj", "timing belt", "lánc"],
|
|
"description": "Vezérműszíj vagy vezérlőlánc cseréje"
|
|
},
|
|
"fekbetet_csere": {
|
|
"name_hu": "Fékbetét csere",
|
|
"name_en": "Brake Pad Replacement",
|
|
"category": "mechanic",
|
|
"search_keywords": ["fék", "fékbetét", "brake", "fékpofa"],
|
|
"description": "Fékbetétek és fékpofák cseréje"
|
|
},
|
|
"kuplung_csere": {
|
|
"name_hu": "Kuplung csere",
|
|
"name_en": "Clutch Replacement",
|
|
"category": "mechanic",
|
|
"search_keywords": ["kuplung", "clutch", "kuplungcsere"],
|
|
"description": "Kuplung szett cseréje"
|
|
},
|
|
"turbo_felujitas": {
|
|
"name_hu": "Turbó felújítás",
|
|
"name_en": "Turbo Repair",
|
|
"category": "mechanic",
|
|
"search_keywords": ["turbó", "turbo", "feltöltő", "turbo repair"],
|
|
"description": "Turbófeltöltők javítása és felújítása"
|
|
},
|
|
"dpf_tisztitas": {
|
|
"name_hu": "DPF tisztítás",
|
|
"name_en": "DPF Cleaning",
|
|
"category": "mechanic",
|
|
"search_keywords": ["dpf", "részecskeszűrő", "diesel particulate filter"],
|
|
"description": "Dízel részecskeszűrő tisztítása és regenerálása"
|
|
},
|
|
"motordiagnosztika": {
|
|
"name_hu": "Motordiagnosztika",
|
|
"name_en": "Engine Diagnostics",
|
|
"category": "mechanic",
|
|
"search_keywords": ["diagnosztika", "motor", "hibakód", "diagnostics"],
|
|
"description": "Motorhibák diagnosztizálása számítógépes eszközökkel"
|
|
},
|
|
"klimatoltes": {
|
|
"name_hu": "Klímatöltés",
|
|
"name_en": "AC Service",
|
|
"category": "mechanic",
|
|
"search_keywords": ["klíma", "klímatöltés", "ac", "air conditioning"],
|
|
"description": "Légkondicionáló rendszer töltése és karbantartása"
|
|
},
|
|
"ozonos_klimatisztitas": {
|
|
"name_hu": "Ózonos klímatisztítás",
|
|
"name_en": "Ozone AC Cleaning",
|
|
"category": "mechanic",
|
|
"search_keywords": ["ózon", "klímatisztítás", "ozone", "ac cleaning"],
|
|
"description": "Klímarendszer ózonos fertőtlenítése"
|
|
},
|
|
"kipufogo_javitas": {
|
|
"name_hu": "Kipufogó javítás",
|
|
"name_en": "Exhaust Repair",
|
|
"category": "mechanic",
|
|
"search_keywords": ["kipufogó", "exhaust", "dob", "katalizátor"],
|
|
"description": "Kipufogórendszer javítása és hegesztése"
|
|
},
|
|
"lengescillapito_csere": {
|
|
"name_hu": "Lengéscsillapító csere",
|
|
"name_en": "Shock Absorber Replacement",
|
|
"category": "mechanic",
|
|
"search_keywords": ["lengéscsillapító", "shock", "felfüggesztés", "suspension"],
|
|
"description": "Lengéscsillapítók és felfüggesztés elemek cseréje"
|
|
}
|
|
}
|
|
},
|
|
"autovillamossag": {
|
|
"name_hu": "Autóvillamosság",
|
|
"name_en": "Auto Electrician",
|
|
"category": "electrical",
|
|
"search_keywords": ["villamosság", "elektromos", "auto electrician", "elektronika"],
|
|
"description": "Gépjármű elektromos rendszereinek javítása",
|
|
"children": {
|
|
"akkumulator_csere": {
|
|
"name_hu": "Akkumulátor csere",
|
|
"name_en": "Battery Replacement",
|
|
"category": "electrical",
|
|
"search_keywords": ["akkumulátor", "battery", "akku"],
|
|
"description": "Indítóakkumulátor cseréje"
|
|
},
|
|
"generator_felujitas": {
|
|
"name_hu": "Generátor felújítás",
|
|
"name_en": "Alternator Repair",
|
|
"category": "electrical",
|
|
"search_keywords": ["generátor", "alternator", "váltóáramú generátor"],
|
|
"description": "Generátor javítása és felújítása"
|
|
},
|
|
"onindito_javitas": {
|
|
"name_hu": "Önindító javítás",
|
|
"name_en": "Starter Motor Repair",
|
|
"category": "electrical",
|
|
"search_keywords": ["önindító", "starter", "indítómotor"],
|
|
"description": "Önindító motor javítása"
|
|
},
|
|
"hibakod_olvasas": {
|
|
"name_hu": "Hibakód olvasás",
|
|
"name_en": "DTC Reading",
|
|
"category": "electrical",
|
|
"search_keywords": ["hibakód", "dtc", "diagnosztika", "error code"],
|
|
"description": "Fedélzeti diagnosztikai hibakódok kiolvasása"
|
|
},
|
|
"immobiliser_programozas": {
|
|
"name_hu": "Immobiliser programozás",
|
|
"name_en": "Immobiliser Programming",
|
|
"category": "electrical",
|
|
"search_keywords": ["immobiliser", "immobilizer", "kulcs", "key programming"],
|
|
"description": "Indításgátló rendszer programozása és kulcsmásolás"
|
|
},
|
|
"tolatoradar_beszereles": {
|
|
"name_hu": "Tolatóradar beszerelés",
|
|
"name_en": "Parking Sensor Installation",
|
|
"category": "electrical",
|
|
"search_keywords": ["tolatóradar", "parking sensor", "parktronic"],
|
|
"description": "Tolatóradar rendszerek beszerelése"
|
|
}
|
|
}
|
|
},
|
|
"gumiszerviz": {
|
|
"name_hu": "Gumiszerviz",
|
|
"name_en": "Tire Service",
|
|
"category": "tire",
|
|
"search_keywords": ["gumi", "gumis", "tire", "tyre", "abroncs", "kerék"],
|
|
"description": "Gumiabroncsok cseréje, javítása",
|
|
"children": {
|
|
"gumiabroncs_csere": {
|
|
"name_hu": "Gumiabroncs csere",
|
|
"name_en": "Tire Change",
|
|
"category": "tire",
|
|
"search_keywords": ["gumicsere", "tire change", "abroncs csere"],
|
|
"description": "Szezonális gumiabroncs csere"
|
|
},
|
|
"centrirozas": {
|
|
"name_hu": "Centrírozás",
|
|
"name_en": "Wheel Balancing",
|
|
"category": "tire",
|
|
"search_keywords": ["centrírozás", "balancing", "kerék kiegyensúlyozás"],
|
|
"description": "Kerekek centrírozása és kiegyensúlyozása"
|
|
},
|
|
"defektjavitas": {
|
|
"name_hu": "Defektjavítás",
|
|
"name_en": "Puncture Repair",
|
|
"category": "tire",
|
|
"search_keywords": ["defekt", "puncture", "gumijavítás"],
|
|
"description": "Gumiabroncs defekt javítása"
|
|
},
|
|
"alufelni_gorgozes": {
|
|
"name_hu": "Alufelni görgőzés",
|
|
"name_en": "Alloy Wheel Straightening",
|
|
"category": "tire",
|
|
"search_keywords": ["alufelni", "görgőzés", "alloy wheel", "felni javítás"],
|
|
"description": "Alumínium felnik görgőzése és javítása"
|
|
},
|
|
"tpms_szenzor_tanitas": {
|
|
"name_hu": "TPMS szenzor tanítás",
|
|
"name_en": "TPMS Sensor Programming",
|
|
"category": "tire",
|
|
"search_keywords": ["tpms", "szenzor", "guminyomás", "tire pressure"],
|
|
"description": "Guminyomás monitor rendszer szenzorainak tanítása"
|
|
}
|
|
}
|
|
},
|
|
"karosszeria_javitas": {
|
|
"name_hu": "Karosszéria javítás",
|
|
"name_en": "Body Repair",
|
|
"category": "body",
|
|
"search_keywords": ["karosszéria", "lakatos", "bodyshop", "kasztni"],
|
|
"description": "Karosszéria javítás és lakatolás",
|
|
"children": {
|
|
"horpadasjavitas_pdr": {
|
|
"name_hu": "Horpadásjavítás (PDR)",
|
|
"name_en": "Paintless Dent Repair (PDR)",
|
|
"category": "body",
|
|
"search_keywords": ["horpadás", "pdr", "dent repair", "horpadásjavítás"],
|
|
"description": "Fényezés nélküli horpadásjavítás"
|
|
},
|
|
"jegkar_javitas": {
|
|
"name_hu": "Jégkár javítás",
|
|
"name_en": "Hail Damage Repair",
|
|
"category": "body",
|
|
"search_keywords": ["jégkár", "hail", "jégeső", "hail damage"],
|
|
"description": "Jégeső okozta károk javítása"
|
|
},
|
|
"alvazvedelem": {
|
|
"name_hu": "Alvázvédelem",
|
|
"name_en": "Underbody Protection",
|
|
"category": "body",
|
|
"search_keywords": ["alváz", "alvázvédelem", "underbody", "alvázkezelés"],
|
|
"description": "Alvázvédelem és alvázkezelés"
|
|
},
|
|
"szelvedo_csere": {
|
|
"name_hu": "Szélvédő csere",
|
|
"name_en": "Windshield Replacement",
|
|
"category": "body",
|
|
"search_keywords": ["szélvédő", "windshield", "ablak", "üveg"],
|
|
"description": "Szélvédő és autóüveg csere"
|
|
},
|
|
"muanyag_lokharito_hegesztes": {
|
|
"name_hu": "Műanyag lökhárító hegesztés",
|
|
"name_en": "Plastic Bumper Welding",
|
|
"category": "body",
|
|
"search_keywords": ["lökhárító", "bumper", "műanyag hegesztés", "bumper repair"],
|
|
"description": "Műanyag lökhárítók hegesztése és javítása"
|
|
}
|
|
}
|
|
},
|
|
"fenyezes": {
|
|
"name_hu": "Fényezés",
|
|
"name_en": "Painting",
|
|
"category": "paint",
|
|
"search_keywords": ["fényező", "fényezés", "painter", "lakkozás"],
|
|
"description": "Gépjármű fényezés és lakkozás",
|
|
"children": {
|
|
"elemfenyezes": {
|
|
"name_hu": "Elemfényezés",
|
|
"name_en": "Panel Painting",
|
|
"category": "paint",
|
|
"search_keywords": ["elemfényezés", "panel painting", "részfényezés"],
|
|
"description": "Egyedi karosszériaelemek fényezése"
|
|
},
|
|
"teljes_polirozas": {
|
|
"name_hu": "Teljes polírozás",
|
|
"name_en": "Full Polishing",
|
|
"category": "paint",
|
|
"search_keywords": ["polírozás", "polishing", "fényezés helyreállítás"],
|
|
"description": "Teljes gépjármű polírozás és fényezés helyreállítás"
|
|
},
|
|
"fényszóró_polírozás": {
|
|
"name_hu": "Fényszóró polírozás",
|
|
"name_en": "Headlight Polishing",
|
|
"category": "paint",
|
|
"search_keywords": ["fényszóró", "headlight", "polírozás", "homályosítás"],
|
|
"description": "Műanyag fényszórók polírozása és átlátszóság helyreállítás"
|
|
}
|
|
}
|
|
},
|
|
"sebessegvalto_specialista": {
|
|
"name_hu": "Sebességváltó specialista",
|
|
"name_en": "Transmission Specialist",
|
|
"category": "transmission",
|
|
"search_keywords": ["váltó", "sebességváltó", "transmission", "dsg"],
|
|
"description": "Sebességváltók javítása és karbantartása",
|
|
"children": {
|
|
"automata_valto_olajcsere": {
|
|
"name_hu": "Automata váltó olajcsere",
|
|
"name_en": "Automatic Transmission Fluid Change",
|
|
"category": "transmission",
|
|
"search_keywords": ["automata váltó", "atf", "olajcsere", "transmission fluid"],
|
|
"description": "Automata sebességváltó olajcseréje"
|
|
},
|
|
"kettostomegu_lendkerék_csere": {
|
|
"name_hu": "Kettőstömegű lendkerék csere",
|
|
"name_en": "Dual Mass Flywheel Replacement",
|
|
"category": "transmission",
|
|
"search_keywords": ["dmf", "lendkerék", "dual mass", "kettőstömegű"],
|
|
"description": "Kettőstömegű lendkerék (DMF) cseréje"
|
|
},
|
|
"dsg_javitas": {
|
|
"name_hu": "DSG javítás",
|
|
"name_en": "DSG Repair",
|
|
"category": "transmission",
|
|
"search_keywords": ["dsg", "dsg javítás", "dsg váltó", "direct shift gearbox"],
|
|
"description": "DSG sebességváltók javítása és szervize"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
# ─── Járműmosó és Kozmetika (Level 1) ───
|
|
"jarmumoso_es_kozmetika": {
|
|
"name_hu": "Járműmosó és Kozmetika",
|
|
"name_en": "Car Wash and Detailing",
|
|
"category": "detailing",
|
|
"search_keywords": ["mosó", "kozmetika", "detailing", "mosás", "takarítás"],
|
|
"description": "Gépjárműmosás, takarítás és kozmetikai szolgáltatások",
|
|
"children": {
|
|
"kezi_autamoso": {
|
|
"name_hu": "Kézi Autómosó",
|
|
"name_en": "Hand Car Wash",
|
|
"category": "detailing",
|
|
"search_keywords": ["kézi mosás", "hand wash", "autómosó"],
|
|
"description": "Kézi erővel végzett autómosás és ápolás",
|
|
"children": {
|
|
"kulso_mosas": {
|
|
"name_hu": "Külső mosás",
|
|
"name_en": "Exterior Wash",
|
|
"category": "detailing",
|
|
"search_keywords": ["külső mosás", "exterior wash", "autómosás"],
|
|
"description": "Gépjármű külső mosása"
|
|
},
|
|
"belso_takaritas": {
|
|
"name_hu": "Belső takarítás",
|
|
"name_en": "Interior Cleaning",
|
|
"category": "detailing",
|
|
"search_keywords": ["belső", "interior", "takarítás", "porszívózás"],
|
|
"description": "Gépjármű belső terének takarítása"
|
|
},
|
|
"karpi_tisztitas": {
|
|
"name_hu": "Kárpittisztítás",
|
|
"name_en": "Upholstery Cleaning",
|
|
"category": "detailing",
|
|
"search_keywords": ["kárpit", "upholstery", "ülés", "seat cleaning"],
|
|
"description": "Ülések és kárpitok mélytisztítása"
|
|
},
|
|
"borapolas": {
|
|
"name_hu": "Bőrápolás",
|
|
"name_en": "Leather Care",
|
|
"category": "detailing",
|
|
"search_keywords": ["bőr", "leather", "bőrápolás", "bőrtisztítás"],
|
|
"description": "Bőrülések ápolása és tisztítása"
|
|
},
|
|
"keramia_bevonat": {
|
|
"name_hu": "Kerámia bevonat",
|
|
"name_en": "Ceramic Coating",
|
|
"category": "detailing",
|
|
"search_keywords": ["kerámia", "ceramic coating", "bevonat", "nano"],
|
|
"description": "Kerámia nano-bevonat felvitele a karosszériára"
|
|
}
|
|
}
|
|
},
|
|
"onkiszolgalo_moso": {
|
|
"name_hu": "Önkiszolgáló mosó",
|
|
"name_en": "Self-Service Car Wash",
|
|
"category": "detailing",
|
|
"search_keywords": ["önkiszolgáló", "self-service", "mosó", "automata mosó"],
|
|
"description": "Önkiszolgáló autómosó állomások"
|
|
},
|
|
"gepi_kefes_moso": {
|
|
"name_hu": "Gépi / Kefés mosó",
|
|
"name_en": "Automatic Car Wash",
|
|
"category": "detailing",
|
|
"search_keywords": ["gépi mosó", "kefés mosó", "automata", "automatic wash"],
|
|
"description": "Automata kefés gépjárműmosók"
|
|
}
|
|
}
|
|
},
|
|
# ─── Mentés, Szállítás és Asszisztencia (Level 1) ───
|
|
"mentes_szallitas_asszisztencia": {
|
|
"name_hu": "Mentés, Szállítás és Asszisztencia",
|
|
"name_en": "Towing, Transport and Assistance",
|
|
"category": "roadside",
|
|
"search_keywords": ["mentés", "szállítás", "asszisztencia", "tow", "roadside"],
|
|
"description": "Autómentés, szállítás és úti segítségnyújtás",
|
|
"children": {
|
|
"automento": {
|
|
"name_hu": "Autómentő",
|
|
"name_en": "Tow Truck Service",
|
|
"category": "roadside",
|
|
"search_keywords": ["mentő", "autómentő", "tow", "roadside assistance"],
|
|
"description": "Autómentés és útszéli segítségnyújtás",
|
|
"children": {
|
|
"darus_mentes": {
|
|
"name_hu": "Darus mentés",
|
|
"name_en": "Crane Recovery",
|
|
"category": "roadside",
|
|
"search_keywords": ["daru", "crane", "mentés", "kiemelés"],
|
|
"description": "Darus gépjármű kiemelés és mentés"
|
|
},
|
|
"melygarazsbol_mentes": {
|
|
"name_hu": "Mélygarázsból mentés",
|
|
"name_en": "Underground Garage Recovery",
|
|
"category": "roadside",
|
|
"search_keywords": ["mélygarázs", "underground", "garázs", "mentés"],
|
|
"description": "Mélygarázsokból történő gépjármű mentés"
|
|
},
|
|
"felretankolas_szivas": {
|
|
"name_hu": "Félretankolás szívás",
|
|
"name_en": "Wrong Fuel Drain",
|
|
"category": "roadside",
|
|
"search_keywords": ["félretankolás", "rossz üzemanyag", "szívás", "wrong fuel"],
|
|
"description": "Rossz üzemanyaggal tankolt jármű üzemanyagának eltávolítása"
|
|
}
|
|
}
|
|
},
|
|
"mobil_gumiszerviz": {
|
|
"name_hu": "Mobil Gumiszerviz",
|
|
"name_en": "Mobile Tire Service",
|
|
"category": "roadside",
|
|
"search_keywords": ["mobil gumis", "mobile tire", "helyszíni gumicsere"],
|
|
"description": "Helyszíni gumiszerviz szolgáltatás"
|
|
},
|
|
"autoszallitas_trelerek": {
|
|
"name_hu": "Autószállítás / Tréler",
|
|
"name_en": "Car Transport / Trailer",
|
|
"category": "roadside",
|
|
"search_keywords": ["szállítás", "tréler", "trailer", "autószállítás", "transport"],
|
|
"description": "Gépjárművek szállítása trélerrel",
|
|
"children": {
|
|
"nemzetkozi_autoszallitas": {
|
|
"name_hu": "Nemzetközi autószállítás",
|
|
"name_en": "International Car Transport",
|
|
"category": "roadside",
|
|
"search_keywords": ["nemzetközi", "international", "export", "import", "szállítás"],
|
|
"description": "Nemzetközi gépjármű szállítás"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
# ─── Hatósági Vizsgáztatás (Level 1) ───
|
|
"hatosagi_vizsgaztatas": {
|
|
"name_hu": "Hatósági Vizsgáztatás",
|
|
"name_en": "Official Inspection",
|
|
"category": "inspection",
|
|
"search_keywords": ["vizsga", "műszaki", "inspection", "hatósági", "vizsgáztatás"],
|
|
"description": "Hatósági gépjármű vizsgáztatás",
|
|
"children": {
|
|
"muszaki_vizsgaallomas": {
|
|
"name_hu": "Műszaki vizsgaállomás",
|
|
"name_en": "MOT Inspection Station",
|
|
"category": "inspection",
|
|
"search_keywords": ["műszaki vizsga", "MOT", "inspection", "vizsgaállomás"],
|
|
"description": "Időszakos műszaki vizsgáztatás"
|
|
},
|
|
"eredetisegvizsgalat": {
|
|
"name_hu": "Eredetiségvizsgálat",
|
|
"name_en": "Vehicle Authenticity Check",
|
|
"category": "inspection",
|
|
"search_keywords": ["eredetiség", "authenticity", "kilométer", "származás"],
|
|
"description": "Gépjármű eredetiségének vizsgálata"
|
|
}
|
|
}
|
|
},
|
|
# ─── Út menti / Kényelmi Szolgáltatások (Level 1) ───
|
|
"ut_menti_kenyelmi_szolgaltatasok": {
|
|
"name_hu": "Út menti / Kényelmi Szolgáltatások",
|
|
"name_en": "Roadside Convenience Services",
|
|
"category": "convenience",
|
|
"search_keywords": ["étterem", "szállás", "parkoló", "motel", "convenience"],
|
|
"description": "Út menti kényelmi és vendéglátó szolgáltatások",
|
|
"children": {
|
|
"etterem_bufe": {
|
|
"name_hu": "Étterem / Büfé",
|
|
"name_en": "Restaurant / Snack Bar",
|
|
"category": "convenience",
|
|
"search_keywords": ["étterem", "büfé", "restaurant", "snack", "vendéglátás"],
|
|
"description": "Út menti éttermek és büfék"
|
|
},
|
|
"szallashely_motel": {
|
|
"name_hu": "Szálláshely / Motel",
|
|
"name_en": "Accommodation / Motel",
|
|
"category": "convenience",
|
|
"search_keywords": ["szállás", "motel", "hotel", "accommodation", "pihenő"],
|
|
"description": "Út menti szálláshelyek és motelek"
|
|
},
|
|
"orzott_parkolo": {
|
|
"name_hu": "Őrzött parkoló",
|
|
"name_en": "Secured Parking",
|
|
"category": "convenience",
|
|
"search_keywords": ["parkoló", "parking", "őrzött", "garázs", "secured"],
|
|
"description": "Őrzött gépjármű parkolók"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# MOTORKERÉKPÁR (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"motorkerekpar": {
|
|
"name_hu": "Motorkerékpár",
|
|
"name_en": "Motorcycle",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["motor", "motorcycle", "robogó", "scooter", "motorkerékpár"],
|
|
"description": "Motorkerékpárokhoz kapcsolódó szolgáltatások",
|
|
"children": {
|
|
"motor_karbantartas_es_javitas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["motor szerelés", "motor javítás", "motorcycle repair"],
|
|
"description": "Motorkerékpárok karbantartása és javítása",
|
|
"children": {
|
|
"motor_szerelo": {
|
|
"name_hu": "Motorkerékpár szerelő",
|
|
"name_en": "Motorcycle Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["motor szerelő", "motorcycle mechanic", "robogó szerelő"],
|
|
"description": "Motorkerékpárok és robogók mechanikai javítása",
|
|
"children": {
|
|
"motor_olajcsere": {
|
|
"name_hu": "Motor olajcsere",
|
|
"name_en": "Motorcycle Oil Change",
|
|
"category": "mechanic",
|
|
"search_keywords": ["motor olaj", "motorcycle oil", "olajcsere"],
|
|
"description": "Motorkerékpár motorolaj cseréje"
|
|
},
|
|
"motor_lanc_csere": {
|
|
"name_hu": "Lánc csere",
|
|
"name_en": "Chain Replacement",
|
|
"category": "mechanic",
|
|
"search_keywords": ["lánc", "chain", "lánckészlet", "motor lánc"],
|
|
"description": "Motorkerékpár lánc és lánckerekek cseréje"
|
|
},
|
|
"motor_gumicsere": {
|
|
"name_hu": "Motor gumicsere",
|
|
"name_en": "Motorcycle Tire Change",
|
|
"category": "tire",
|
|
"search_keywords": ["motor gumi", "motorcycle tire", "abroncs"],
|
|
"description": "Motorkerékpár gumiabroncsok cseréje"
|
|
}
|
|
}
|
|
},
|
|
"motor_villamossag": {
|
|
"name_hu": "Motor villamosság",
|
|
"name_en": "Motorcycle Electrician",
|
|
"category": "electrical",
|
|
"search_keywords": ["motor elektromos", "motorcycle electrical", "akkumulátor"],
|
|
"description": "Motorkerékpárok elektromos rendszereinek javítása"
|
|
}
|
|
}
|
|
},
|
|
"motor_kiegeszitok": {
|
|
"name_hu": "Kiegészítők és Tuning",
|
|
"name_en": "Accessories and Tuning",
|
|
"category": "accessories",
|
|
"search_keywords": ["motor kiegészítő", "tuning", "motorcycle accessories", "kipufogó"],
|
|
"description": "Motorkerékpár kiegészítők és tuning szolgáltatások",
|
|
"children": {
|
|
"motor_kiegeszito_szereles": {
|
|
"name_hu": "Kiegészítők beszerelése",
|
|
"name_en": "Accessory Installation",
|
|
"category": "accessories",
|
|
"search_keywords": ["kiegészítő", "topcase", "oldaltáska", "accessory"],
|
|
"description": "Motorkerékpár kiegészítők beszerelése"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# KISHASZONJÁRMŰ (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"kishaszonjarmu": {
|
|
"name_hu": "Kishaszonjármű",
|
|
"name_en": "Light Commercial Vehicle (LCV)",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["kishaszon", "lcv", "furgon", "van", "kisteher", "pickup"],
|
|
"description": "Kishaszonjárművekhez kapcsolódó szolgáltatások",
|
|
"children": {
|
|
"lcv_karbantartas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["furgon szerelés", "lcv repair", "kisteher javítás"],
|
|
"description": "Kishaszonjárművek karbantartása és javítása",
|
|
"children": {
|
|
"lcv_szerelo": {
|
|
"name_hu": "Kishaszonjármű szerelő",
|
|
"name_en": "LCV Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["furgon szerelő", "lcv mechanic", "kisteher szerelő"],
|
|
"description": "Furgonok és kisteher járművek mechanikai javítása"
|
|
},
|
|
"lcv_gumiszerviz": {
|
|
"name_hu": "LCV Gumiszerviz",
|
|
"name_en": "LCV Tire Service",
|
|
"category": "tire",
|
|
"search_keywords": ["furgon gumi", "lcv tire", "kisteher gumi"],
|
|
"description": "Kishaszonjármű gumiabroncsok cseréje és javítása"
|
|
}
|
|
}
|
|
},
|
|
"lcv_moso": {
|
|
"name_hu": "Nagyhaszonjármű mosó",
|
|
"name_en": "LCV / Truck Wash",
|
|
"category": "detailing",
|
|
"search_keywords": ["furgon mosó", "lcv wash", "kisteher mosás", "nagy mosó"],
|
|
"description": "Kishaszonjárművek és kisteher járművek mosása"
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# NAGYHASZONJÁRMŰ (KAMION) (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"nagyhaszonjarmu_kamion": {
|
|
"name_hu": "Nagyhaszonjármű (Kamion)",
|
|
"name_en": "Heavy Goods Vehicle (HGV / Truck)",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["kamion", "truck", "hgv", "teherautó", "nyerges", "nehéz"],
|
|
"description": "Nagyhaszonjárművekhez és kamionokhoz kapcsolódó szolgáltatások",
|
|
"children": {
|
|
"kamion_karbantartas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["kamion szerelés", "truck repair", "hgv maintenance"],
|
|
"description": "Kamionok és nehézgépjárművek karbantartása és javítása",
|
|
"children": {
|
|
"kamion_szerelo": {
|
|
"name_hu": "Kamionszerelő",
|
|
"name_en": "Truck Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["kamion szerelő", "truck mechanic", "hgv szerelő"],
|
|
"description": "Kamionok mechanikai javítása és karbantartása"
|
|
},
|
|
"kamion_diagnosztika": {
|
|
"name_hu": "Kamion diagnosztika",
|
|
"name_en": "Truck Diagnostics",
|
|
"category": "mechanic",
|
|
"search_keywords": ["kamion diagnosztika", "truck diagnostics", "hibakód"],
|
|
"description": "Kamionok fedélzeti diagnosztikája"
|
|
},
|
|
"kamion_fekrendszer": {
|
|
"name_hu": "Fékrendszer szerviz",
|
|
"name_en": "Brake System Service",
|
|
"category": "mechanic",
|
|
"search_keywords": ["kamion fék", "truck brake", "fékrendszer", "légfék"],
|
|
"description": "Kamionok légfék rendszerének karbantartása"
|
|
}
|
|
}
|
|
},
|
|
"kamion_gumiszerviz": {
|
|
"name_hu": "Kamion Gumiszerviz",
|
|
"name_en": "Truck Tire Service",
|
|
"category": "tire",
|
|
"search_keywords": ["kamion gumi", "truck tire", "hgv tire", "abroncs"],
|
|
"description": "Kamion gumiabroncsok cseréje és javítása"
|
|
},
|
|
"kamion_moso": {
|
|
"name_hu": "Nagyhaszonjármű mosó",
|
|
"name_en": "Truck Wash",
|
|
"category": "detailing",
|
|
"search_keywords": ["kamion mosó", "truck wash", "nagy mosó", "teherautó mosás"],
|
|
"description": "Kamionok és nehézgépjárművek mosása"
|
|
},
|
|
"tachograf_szerviz": {
|
|
"name_hu": "Tachográf szerviz",
|
|
"name_en": "Tachograph Service",
|
|
"category": "inspection",
|
|
"search_keywords": ["tachográf", "tachograph", "menetíró", "digitális tachográf"],
|
|
"description": "Digitális és analóg tachográfok karbantartása és hitelesítése",
|
|
"children": {
|
|
"tachograf_kalibralas": {
|
|
"name_hu": "Tachográf kalibrálás",
|
|
"name_en": "Tachograph Calibration",
|
|
"category": "inspection",
|
|
"search_keywords": ["kalibrálás", "calibration", "tachográf hitelesítés"],
|
|
"description": "Tachográf rendszerek időszakos kalibrálása"
|
|
},
|
|
"tachograf_illesztes": {
|
|
"name_hu": "Tachográf illesztés",
|
|
"name_en": "Tachograph Fitting",
|
|
"category": "inspection",
|
|
"search_keywords": ["tachográf szerelés", "tachograph installation", "illesztés"],
|
|
"description": "Tachográf készülékek beszerelése és cseréje"
|
|
}
|
|
}
|
|
},
|
|
"kamion_szallitas": {
|
|
"name_hu": "Kamionos szállítás",
|
|
"name_en": "Truck Transport",
|
|
"category": "roadside",
|
|
"search_keywords": ["kamion szállítás", "truck transport", "fuvarozás", "teherszállítás"],
|
|
"description": "Kamionos áru- és teherszállítási szolgáltatások"
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# MUNKAGÉP / TRAKTOR (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"munkagep_traktor": {
|
|
"name_hu": "Munkagép / Traktor",
|
|
"name_en": "Agricultural / Construction Machinery",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["traktor", "tractor", "munkagép", "mezőgazdasági", "építőipari"],
|
|
"description": "Mezőgazdasági és építőipari munkagépek szolgáltatásai",
|
|
"children": {
|
|
"munkagep_karbantartas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["traktor szerelés", "tractor repair", "munkagép javítás"],
|
|
"description": "Mezőgazdasági és építőipari gépek karbantartása",
|
|
"children": {
|
|
"traktor_szerelo": {
|
|
"name_hu": "Traktor szerelő",
|
|
"name_en": "Tractor Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["traktor szerelő", "tractor mechanic", "mezőgazdasági gép"],
|
|
"description": "Traktorok és mezőgazdasági gépek javítása"
|
|
},
|
|
"epitoipari_gep_szerelo": {
|
|
"name_hu": "Építőipari gép szerelő",
|
|
"name_en": "Construction Machinery Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["építőipari gép", "construction", "kotró", "dózer"],
|
|
"description": "Építőipari gépek (kotrók, dózerok) javítása"
|
|
},
|
|
"hidraulika_szerviz": {
|
|
"name_hu": "Hidraulika szerviz",
|
|
"name_en": "Hydraulic Service",
|
|
"category": "mechanic",
|
|
"search_keywords": ["hidraulika", "hydraulic", "munkahenger", "tömítés"],
|
|
"description": "Hidraulikus rendszerek javítása és karbantartása"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# PÓTKOCSI / UTÁNFUTÓ (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"potkocsi_utanfuto": {
|
|
"name_hu": "Pótkocsi / Utánfutó",
|
|
"name_en": "Trailer",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["pótkocsi", "utánfutó", "trailer", "félpótkocsi"],
|
|
"description": "Pótkocsikhoz és utánfutókhoz kapcsolódó szolgáltatások",
|
|
"children": {
|
|
"potkocsi_karbantartas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["pótkocsi szerelés", "trailer repair", "utánfutó javítás"],
|
|
"description": "Pótkocsik és utánfutók karbantartása",
|
|
"children": {
|
|
"potkocsi_szerelo": {
|
|
"name_hu": "Pótkocsi szerelő",
|
|
"name_en": "Trailer Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["pótkocsi szerelő", "trailer mechanic", "utánfutó szerelő"],
|
|
"description": "Pótkocsik és utánfutók mechanikai javítása"
|
|
},
|
|
"potkocsi_fek_javitas": {
|
|
"name_hu": "Pótkocsi fék javítás",
|
|
"name_en": "Trailer Brake Repair",
|
|
"category": "mechanic",
|
|
"search_keywords": ["pótkocsi fék", "trailer brake", "utánfutó fék"],
|
|
"description": "Pótkocsik fékrendszerének javítása"
|
|
}
|
|
}
|
|
},
|
|
"potkocsi_vizsga": {
|
|
"name_hu": "Pótkocsi vizsgáztatás",
|
|
"name_en": "Trailer Inspection",
|
|
"category": "inspection",
|
|
"search_keywords": ["pótkocsi vizsga", "trailer inspection", "utánfutó műszaki"],
|
|
"description": "Pótkocsik időszakos műszaki vizsgáztatása"
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# BUSZ (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"busz": {
|
|
"name_hu": "Busz",
|
|
"name_en": "Bus / Coach",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["busz", "bus", "coach", "autóbusz", "távolsági busz"],
|
|
"description": "Buszokhoz és autóbuszokhoz kapcsolódó szolgáltatások",
|
|
"children": {
|
|
"busz_karbantartas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["busz szerelés", "bus repair", "autóbusz javítás"],
|
|
"description": "Buszok és autóbuszok karbantartása",
|
|
"children": {
|
|
"busz_szerelo": {
|
|
"name_hu": "Buszszerelő",
|
|
"name_en": "Bus Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["busz szerelő", "bus mechanic", "autóbusz szerelő"],
|
|
"description": "Buszok mechanikai javítása és karbantartása"
|
|
},
|
|
"busz_diagnosztika": {
|
|
"name_hu": "Busz diagnosztika",
|
|
"name_en": "Bus Diagnostics",
|
|
"category": "mechanic",
|
|
"search_keywords": ["busz diagnosztika", "bus diagnostics", "fedélzeti rendszer"],
|
|
"description": "Buszok fedélzeti rendszereinek diagnosztikája"
|
|
}
|
|
}
|
|
},
|
|
"busz_takaritas": {
|
|
"name_hu": "Busz takarítás",
|
|
"name_en": "Bus Cleaning",
|
|
"category": "detailing",
|
|
"search_keywords": ["busz takarítás", "bus cleaning", "autóbusz mosás"],
|
|
"description": "Buszok belső és külső takarítása"
|
|
}
|
|
}
|
|
},
|
|
|
|
# ════════════════════════════════════════════
|
|
# LAKÓAUTÓ / LAKÓKOCSI (Level 0)
|
|
# ════════════════════════════════════════════
|
|
"lakoauto_lakokocsi": {
|
|
"name_hu": "Lakóautó / Lakókocsi",
|
|
"name_en": "Motorhome / Caravan",
|
|
"category": "vehicle_type",
|
|
"search_keywords": ["lakóautó", "lakókocsi", "motorhome", "caravan", "camper"],
|
|
"description": "Lakóautókhoz és lakókocsikhoz kapcsolódó szolgáltatások",
|
|
"children": {
|
|
"lakokocsi_karbantartas": {
|
|
"name_hu": "Karbantartás és Javítás",
|
|
"name_en": "Maintenance and Repair",
|
|
"category": "vehicle_service",
|
|
"search_keywords": ["lakóautó szerelés", "motorhome repair", "lakókocsi javítás"],
|
|
"description": "Lakóautók és lakókocsik karbantartása",
|
|
"children": {
|
|
"lakoauto_szerelo": {
|
|
"name_hu": "Lakóautó szerelő",
|
|
"name_en": "Motorhome Mechanic",
|
|
"category": "mechanic",
|
|
"search_keywords": ["lakóautó szerelő", "motorhome mechanic", "camper szerelő"],
|
|
"description": "Lakóautók gépészeti javítása"
|
|
},
|
|
"lakokocsi_karosszeria": {
|
|
"name_hu": "Lakókocsi karosszéria javítás",
|
|
"name_en": "Caravan Body Repair",
|
|
"category": "body",
|
|
"search_keywords": ["lakókocsi javítás", "caravan repair", "lakóautó karosszéria"],
|
|
"description": "Lakókocsik és lakóautók karosszéria javítása"
|
|
}
|
|
}
|
|
},
|
|
"lakoauto_szerelveny": {
|
|
"name_hu": "Lakóautó szerelvény szerviz",
|
|
"name_en": "Motorhome Fitting Service",
|
|
"category": "accessories",
|
|
"search_keywords": ["szerelvény", "fitting", "lakóautó felszerelés", "camper átalakítás"],
|
|
"description": "Lakóautók belső szerelvényeinek karbantartása"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
# ──────────────────────────────────────────────
|
|
# SEED LOGIC
|
|
# ──────────────────────────────────────────────
|
|
|
|
async def _flatten_and_insert(db, parent_id: int | None, level: int, path_prefix: str, data: dict, parent_key: str | None):
|
|
"""
|
|
Rekurzívan bejárja a TAXONOMY szótárat, és beszúrja a rekordokat.
|
|
Visszaadja a beszúrt rekordok számát.
|
|
"""
|
|
inserted = 0
|
|
for key, node in data.items():
|
|
# Path építése: root esetén csak a key, egyébként path_prefix/key
|
|
if level == 0:
|
|
path = key
|
|
else:
|
|
path = f"{path_prefix}/{key}" if path_prefix else key
|
|
|
|
tag = ExpertiseTag(
|
|
key=key,
|
|
name_hu=node["name_hu"],
|
|
name_en=node["name_en"],
|
|
category=node.get("category", ""),
|
|
search_keywords=node.get("search_keywords", []),
|
|
description=node.get("description", ""),
|
|
is_official=True,
|
|
level=level,
|
|
parent_id=parent_id,
|
|
path=path,
|
|
discovery_points=10,
|
|
usage_count=0,
|
|
)
|
|
db.add(tag)
|
|
inserted += 1
|
|
|
|
# Rekurzív gyermekek feldolgozása
|
|
children = node.get("children", {})
|
|
if children:
|
|
# Flush kell, hogy meglegyen az ID a parent_id-hoz
|
|
await db.flush()
|
|
child_inserted = await _flatten_and_insert(
|
|
db=db,
|
|
parent_id=tag.id,
|
|
level=level + 1,
|
|
path_prefix=path,
|
|
data=children,
|
|
parent_key=key,
|
|
)
|
|
inserted += child_inserted
|
|
|
|
return inserted
|
|
|
|
|
|
async def seed_expertise_taxonomy():
|
|
"""Feltölti az expertise_tags táblát a teljes 4-szintű taxonómiával."""
|
|
async with AsyncSessionLocal() as db:
|
|
try:
|
|
# 1. Meglévő hivatalos rekordok törlése (is_official=True)
|
|
# A felhasználói (is_official=False) címkék MEGMARADNAK!
|
|
print("🗑️ Meglévő hivatalos (is_official=True) rekordok törlése...")
|
|
stmt_del = delete(ExpertiseTag).where(ExpertiseTag.is_official == True)
|
|
result = await db.execute(stmt_del)
|
|
deleted_count = result.rowcount
|
|
print(f" Törölve: {deleted_count} rekord")
|
|
await db.commit()
|
|
|
|
# 2. Taxonómia beszúrása
|
|
print("🌱 Taxonómia beszúrása...")
|
|
total_inserted = await _flatten_and_insert(
|
|
db=db,
|
|
parent_id=None,
|
|
level=0,
|
|
path_prefix="",
|
|
data=TAXONOMY,
|
|
parent_key=None,
|
|
)
|
|
await db.commit()
|
|
print(f"✅ Sikeresen beszúrva {total_inserted} kategória.")
|
|
|
|
# 3. Univerzális (járműfüggetlen) Level 1 kategóriák beszúrása
|
|
print("🌱 Univerzális (járműfüggetlen) Level 1 kategóriák beszúrása...")
|
|
universal_inserted = 0
|
|
for key, node in UNIVERSAL_CATEGORIES.items():
|
|
tag = ExpertiseTag(
|
|
key=key,
|
|
name_hu=node["name_hu"],
|
|
name_en=node["name_en"],
|
|
category=node.get("category", ""),
|
|
search_keywords=node.get("search_keywords", []),
|
|
description=node.get("description", ""),
|
|
is_official=True,
|
|
level=1,
|
|
parent_id=None,
|
|
path=key,
|
|
discovery_points=10,
|
|
usage_count=0,
|
|
)
|
|
db.add(tag)
|
|
universal_inserted += 1
|
|
|
|
# Gyermekek (Level 2) rekurzív feldolgozása
|
|
children = node.get("children", {})
|
|
if children:
|
|
await db.flush()
|
|
child_inserted = await _flatten_and_insert(
|
|
db=db,
|
|
parent_id=tag.id,
|
|
level=2,
|
|
path_prefix=key,
|
|
data=children,
|
|
parent_key=key,
|
|
)
|
|
universal_inserted += child_inserted
|
|
|
|
await db.commit()
|
|
print(f"✅ Sikeresen beszúrva {universal_inserted} univerzális kategória (Level 1 + Level 2 gyermekek).")
|
|
|
|
# 4. Ellenőrzés
|
|
result = await db.execute(select(func.count(ExpertiseTag.id)))
|
|
final_count = result.scalar()
|
|
print(f"📊 Összes rekord az expertise_tags táblában: {final_count}")
|
|
|
|
# 5. Statisztika szintenként
|
|
for level in range(4):
|
|
result = await db.execute(
|
|
select(func.count(ExpertiseTag.id)).where(
|
|
ExpertiseTag.level == level,
|
|
ExpertiseTag.is_official == True,
|
|
)
|
|
)
|
|
count = result.scalar()
|
|
print(f" Level {level}: {count} rekord")
|
|
|
|
except Exception as e:
|
|
await db.rollback()
|
|
logger.error(f"Hiba a seed-elés során: {e}", exc_info=True)
|
|
print(f"❌ Hiba: {e}")
|
|
raise
|
|
|
|
|
|
if __name__ == "__main__":
|
|
logging.basicConfig(level=logging.INFO)
|
|
asyncio.run(seed_expertise_taxonomy()) |