Files
service-finder/docs/vehicle_dataflow_audit_2026-06-21.md
2026-06-23 21:11:21 +00:00

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

  1. Dashboard jármű kártyák hova mutatnak?
  2. Járművek oldalon milyen adatok látszanak?
  3. Áttekintés (Overview) fül melyik adatbázis táblákból kapja az adatokat?
  4. 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 a VehicleDetailModal-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.asset mezői + individual_equipment JSONB
  • 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}/costsfinance.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}/eventsvehicle.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.asset mező szerepel az AssetResponse-ban
  • A frontend Vehicle interface is lefedi az összes mezőt
  • Kivétel: cargo_volume_x és cargo_volume_y közül csak cargo_volume_y van a frontend típusban

Fleet_finance lefedettség

  • asset_financialsGET /assets/vehicles/{id}/financials
  • vehicle_insurance_policiesGET /assets/vehicles/{id}/insurance
  • vehicle_tax_obligationsGET /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:

  1. VehicleDetailModal Pénzügyek tabja nem tartalmazza a lízing/biztosítás/adó adatokat
  2. is_primary vizuális jelzés hiányzik a kártyán
  3. VehicleUserRating, VehicleTransferRequest, VehicleLogbook API-hiányos