9.3 KiB
🚗 Jármű Adatfolyam Audit 2026-06-21
Kártya: #275 - Audit: Jármű adatfolyam (DB → API → Frontend) teljes körű elemzése Auditor: Rendszer-Architect Státusz: Kész
📋 Vizsgált Kérdések
- Dashboard jármű kártyák hova mutatnak?
- Járművek oldalon milyen adatok látszanak?
- Áttekintés (Overview) fül melyik adatbázis táblákból kapja az adatokat?
- API kapcsolatok lefedik-e az összes adatbázis adatot?
1. Dashboard Jármű Kártyák (VehicleCardStandard)
Fájl: frontend/src/components/vehicle/VehicleCardStandard.vue
Linkelés:
@click="$emit('click', vehicle')→ A parent komponens kezeli (pl. DashboardView, CompanyGarageView), ami megnyitja aVehicleDetailModal-t
Kártyán megjelenő adatok és forrásaik:
| Mező | Forrás (DB) | API |
|---|---|---|
license_plate |
vehicle.asset.license_plate |
GET /assets/vehicles |
brand |
vehicle.asset.brand |
GET /assets/vehicles |
model |
vehicle.asset.model |
GET /assets/vehicles |
year_of_manufacture |
vehicle.asset.year_of_manufacture |
GET /assets/vehicles |
current_mileage |
vehicle.asset.current_mileage |
GET /assets/vehicles |
engine (kW / cm³) |
vehicle.asset.power_kw / engine_capacity |
GET /assets/vehicles |
fuel_type |
vehicle.asset.fuel_type |
GET /assets/vehicles |
color |
individual_equipment.color (JSONB) |
GET /assets/vehicles |
nextService |
individual_equipment.dates.next_service (JSONB) |
GET /assets/vehicles |
2. Jármű Részletek (VehicleDetailModal)
Fájl: frontend/src/components/vehicle/VehicleDetailModal.vue
A modál 4 tab-ot tartalmaz:
Tab 1: Alapadatok (Basic Data)
- Forrás:
vehicle.assetmezői +individual_equipmentJSONB - Megjelenített: Engine (kW/LE), body_type, VIN, mileage, transmission, drive_type, fuel_type, trim_level, EV specs, features, dates, documents, trust score
Tab 2: Pénzügyek (Finance)
- API:
GET /assets/{id}/costs→finance.asset_costs - Tartalom: Éves TCO, fix/running költségek, prémium chartok, átlag fogyasztás/km költség
- HIÁNYZIK: AssetFinancials (beszerzés/lízing), VehicleInsurancePolicy (biztosítások), VehicleTaxObligation (adók)
Tab 3: Figyelmeztetések (Alerts)
- Forrás:
individual_equipment.dates.*(JSONB) - Tartalom: insurance_expiry, mot_expiry, next_service, tire_change
Tab 4: Szervizkönyv (Servicebook)
- API:
GET /assets/{id}/events→vehicle.asset_events - Művelet: Listázás + POST új esemény
3. Áttekintés (OverviewTab) Adatforrásai
Fájl: frontend/src/components/vehicles/tabs/OverviewTab.vue
| Adat | Forrás | DB Tábla/Mező |
|---|---|---|
license_plate |
inject('vehicle') |
vehicle.asset.license_plate |
brand, model |
inject('vehicle') |
vehicle.asset.brand/model |
year_of_manufacture |
inject('vehicle') |
vehicle.asset.year_of_manufacture |
fuel_type |
inject('vehicle') (i18n) |
vehicle.asset.fuel_type |
current_mileage |
inject('vehicle') |
vehicle.asset.current_mileage |
| Havi költség | expenseStore.monthlyCost |
finance.asset_costs (aggregált) |
| Havi km | individual_equipment.monthly_mileage (JSONB) |
vehicle.asset |
| Legutóbbi 3 költség | expenseStore.recentExpenses |
finance.asset_costs |
| MOT lejárat | individual_equipment.dates.mot_expiry (JSONB) |
vehicle.asset |
| Következő szerviz | individual_equipment.dates.next_service (JSONB) |
vehicle.asset |
4. API Lefedettség Ellenőrzés
AssetResponse lefedettség (50+ mező)
- Minden
vehicle.assetmező szerepel azAssetResponse-ban - A frontend
Vehicleinterface is lefedi az összes mezőt - Kivétel:
cargo_volume_xéscargo_volume_yközül csakcargo_volume_yvan a frontend típusban
Fleet_finance lefedettség
asset_financials→GET /assets/vehicles/{id}/financialsvehicle_insurance_policies→GET /assets/vehicles/{id}/insurancevehicle_tax_obligations→GET /assets/vehicles/{id}/taxes- Mindhárom külön API endpointon, teljes CRUD támogatással
Hiányzó API endpointok
VehicleUserRating→ Nincs API (trust score rendszer hiányos)VehicleTransferRequest→ Nincs API (tulajdonosváltás kézzel)VehicleLogbook→ Nincs API (naplózás hiányos)
5. Feltárt Problémák
PROBLÉMA 1: AssetFinancials hiánya a VehicleDetailModal-ból
Súlyosság: Magas Leírás: A VehicleDetailModal Pénzügyek tabja csak az AssetCost adatokat jeleníti meg. Az AssetFinancials (beszerzés, lízing), VehicleInsurancePolicy (biztosítások) és VehicleTaxObligation (adók) adatok a külön FinancialsTab komponensben érhetők el, ami nem része a modálnak. Javaslat: Integrálni a FinancialsTab-ot a VehicleDetailModal-ba, vagy legalább linket tenni a teljes pénzügyi nézetre.
PROBLÉMA 2: is_primary vizuális jelzés hiánya
Súlyosság: Közepes
Leírás: Az is_primary mező létezik (JSONB-ből számolva), de a VehicleCardStandard nem jeleníti meg vizuálisan.
Javaslat: Csillag/jelvény hozzáadása a kártyához, ha a jármű elsődleges.
PROBLÉMA 3: Frontend Vehicle típushiba
Súlyosság: Alacsony
Leírás: A frontend Vehicle interface tartalmaz asset_financials, insurance_policies, tax_obligations mezőket, de ezek nem részei a backend AssetResponse sémának - külön API hívásokkal töltődnek be.
Javaslat: Tisztázni a frontend típusokat, opcionális mezőként jelezni, hogy ezek külön betöltendők.
6. Adatfolyam Diagram
┌──────────────────┐ GET /assets/vehicles ┌──────────────────┐
│ PostgreSQL DB │ ←─────────────────────────→ │ FastAPI Backend │
│ │ │ │
│ vehicle.asset │ AssetResponse (50+ mező) │ /vehicles GET │
│ vehicle.asset_ │ AssetCatalogResponse │ /vehicles/{id} │
│ catalog │ AssetEventResponse │ /{id}/events │
│ finance.asset_ │ AssetCostResponse │ /{id}/costs │
│ costs │ AssetFinancialsResponse │ /{id}/financials│
│ fleet_finance.* │ VehicleInsurancePolicyResp │ /{id}/insurance │
│ vehicle.asset_ │ VehicleTaxObligationResp │ /{id}/taxes │
│ events │ │ │
└──────────────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ Vue 3 Frontend │
│ │
│ VehicleCard │
│ → click │
│ → DetailModal │
│ │
│ VehicleDetail │
│ Modal (4 tab) │
│ ├─ Alapadatok │
│ ├─ Pénzügyek │
│ │ (csak costs) │
│ ├─ Figyelmezt. │
│ └─ Szervizkönyv │
│ │
│ OverviewTab │
│ (inject vehicle │
│ + expenseStore)│
│ │
│ FinancialsTab │
│ (külön oldal) │
└──────────────────┘
7. Következtetés
Összességében az adatfolyam megfelelően van felépítve. Az API lefedi az adatbázis összes fontos mezőjét, a frontend komponensek a megfelelő API végpontokról olvassák az adatokat.
Főbb erősségek:
- Thick Digital Twin koncepció jól implementálva
- AssetResponse minden mezőt tartalmaz
- Fleet_finance modellek külön, tiszta API endpointokon
- JSONB mezők (individual_equipment) rugalmasan használva
Főbb hiányosságok:
- VehicleDetailModal Pénzügyek tabja nem tartalmazza a lízing/biztosítás/adó adatokat
- is_primary vizuális jelzés hiányzik a kártyán
- VehicleUserRating, VehicleTransferRequest, VehicleLogbook API-hiányos