szervíz rögzítés külső szemmel
This commit is contained in:
@@ -31,6 +31,112 @@ logger = logging.getLogger(__name__)
|
||||
# "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)
|
||||
@@ -983,12 +1089,50 @@ async def seed_expertise_taxonomy():
|
||||
await db.commit()
|
||||
print(f"✅ Sikeresen beszúrva {total_inserted} kategória.")
|
||||
|
||||
# 3. Ellenőrzés
|
||||
# 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}")
|
||||
|
||||
# 4. Statisztika szintenként
|
||||
# 5. Statisztika szintenként
|
||||
for level in range(4):
|
||||
result = await db.execute(
|
||||
select(func.count(ExpertiseTag.id)).where(
|
||||
|
||||
Reference in New Issue
Block a user