admin frontend elkezdése, járművek tisztázása, frontend fejleszts
This commit is contained in:
@@ -100,4 +100,67 @@ async def list_body_types(
|
||||
"name_hu": r.name_hu,
|
||||
}
|
||||
for r in rows
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
# NEW: Cascading Catalog Endpoints for Vehicle Wizard (Drill-down UI)
|
||||
# ═══════════════════════════════════════════════════════════════════════════════
|
||||
|
||||
@router.get("/brands", response_model=List[str])
|
||||
async def list_catalog_brands(
|
||||
vehicle_class: Optional[str] = Query(None, description="Szűrés járműosztályra (pl. personal, motorcycle)"),
|
||||
q: Optional[str] = Query(None, description="Keresési szöveg (autocomplete)"),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
current_user = Depends(deps.get_current_user)
|
||||
):
|
||||
"""Márkák listája a vehicle_model_definitions táblából, autocomplete-hez.
|
||||
GET /catalog/brands?class=personal&q=bmw
|
||||
"""
|
||||
return await AssetService.get_catalog_brands(db, vehicle_class, q)
|
||||
|
||||
|
||||
@router.get("/brands/{brand}/models")
|
||||
async def list_catalog_models(
|
||||
brand: str,
|
||||
vehicle_class: Optional[str] = Query(None, description="Szűrés járműosztályra"),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
current_user = Depends(deps.get_current_user)
|
||||
):
|
||||
"""Adott márkához tartozó modellek listája.
|
||||
GET /catalog/brands/BMW/models
|
||||
"""
|
||||
if not brand or brand.strip() == "":
|
||||
return []
|
||||
return await AssetService.get_catalog_models(db, brand, vehicle_class)
|
||||
|
||||
|
||||
@router.get("/brands/{brand}/models/{model}/years")
|
||||
async def list_catalog_years(
|
||||
brand: str,
|
||||
model: str,
|
||||
db: AsyncSession = Depends(get_db),
|
||||
current_user = Depends(deps.get_current_user)
|
||||
):
|
||||
"""Adott márkához és modellhez tartozó elérhető évjáratok.
|
||||
GET /catalog/brands/BMW/models/X5/years
|
||||
"""
|
||||
if not brand or not model or brand.strip() == "" or model.strip() == "":
|
||||
return []
|
||||
return await AssetService.get_catalog_years(db, brand, model)
|
||||
|
||||
|
||||
@router.get("/brands/{brand}/models/{model}/trims")
|
||||
async def list_catalog_trims(
|
||||
brand: str,
|
||||
model: str,
|
||||
year: Optional[int] = Query(None, description="Szűrés évjáratra"),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
current_user = Depends(deps.get_current_user)
|
||||
):
|
||||
"""Adott márkához, modellhez és opcionális évjárathoz tartozó felszereltségek/motorváltozatok.
|
||||
GET /catalog/brands/BMW/models/X5/trims?year=2023
|
||||
"""
|
||||
if not brand or not model or brand.strip() == "" or model.strip() == "":
|
||||
return []
|
||||
return await AssetService.get_catalog_trims(db, brand, model, year)
|
||||
Reference in New Issue
Block a user