# Masterbook 2.0.1: Backend - Frontend UI Szakadék Elemzés **Dátum:** 2026. március 29. **Készítette:** Enterprise Solutions Architect **Referencia:** Issue #172 Mélyelemzés ## 1. Vezetői Összefoglaló (A Brutális Valóság) A mai nap folyamán a Backend rendszermag (SQLAlchemy + Database + API) sikeresen megkapta a Masterbook 2.0.1 legfejlettebb vállalati funkcióit: 1. **`data_status` oszlop** a `vehicle.assets` táblában (DRAFT, ACTIVE, stb. státuszokhoz). 2. **`vehicle_transfer_requests` tábla** a tulajdonosváltási (Owner transfer) forgatókönyvekhez (rendszám igénylés/átvétel/elutasítás). 3. **`system_data_completion_weights` tábla és dinamikus `completion_percentage`** a profil kitöltöttség mérésére (Gamification és Trust score alapja). **A Frontend azonban jelenleg "vak" és teljesen leválasztott ezekről a mély, vállalati szintű (Enterprise) funkciókról.** A Vue.js komponensek, mint a `Dashboard.vue`, `VehicleCard.vue`, `VehicleShowcase.vue` vagy `AddVehicle.vue` vagy hardkódolt értékekkel (vagy egyszerű fallbacks-ekkel) dolgoznak, vagy egyáltalán nem is jelenítik meg a Backend által szolgáltatott adatokat. Ráadásul az alapvető navigációt biztosító profilt váltó rendszerek (Profile/Organization Switcher) 500-as Internal Server Errort dobnak bizonyos esetekben, ami blokkolja a Garage funkciók rendes tesztelését. ## 2. Részletes Elemzés (Mélyfúrás a kódban) ### 2.1. A Dinamikus Profil Kitöltöttség (Completion Percentage) és Data Status Hiánya **A Backend oldalon:** A rendszer a `system_data_completion_weights` alapján súlyozza a megadott adatokat, és API válaszban küldené a dinamikusan kalkulált `completion_percentage` értéket és az adat minőségét/státuszát (`data_status`). **A Frontend oldalon:** - A `frontend/src/components/garage/VehicleCard.vue` fájlban jelenleg egy hardkódolt vagy hiányos fall-back szerepel: ```vue
Profile: {{ vehicle.profile_completion_percentage || 0 }}% Complete
``` - A `vehicle.status` ugyan ki van vezetve (pl. `'draft'`), de az új `data_status` szintű bontás (enum: DRAFT, DISCOVERED, ENRICHED, ACTIVE, ARCHIVED stb.) vizualizálása nem teljes körű vagy nincs a helyes backend mezőre drótozva. ### 2.2. A Jármű Átruházás (Vehicle Transfer Requests) teljes hiánya a UI-on **A Backend oldalon:** Teljes életciklus kezelés (Scenario A, B, C) készült a rendszám alapján történő igénylésre, konfliktuskezelésre (ha már valakié az autó), és tulajdonosváltás lebonyolítására. **A Frontend oldalon:** - A `frontend/src/views/AddVehicle.vue` csak egy egyszerű form (`model_name`, `plate`, `vin`, `current_odo`), amely a `POST /assets/vehicles` endpointot hívja. - Nincs UI ág arra az esetre, ha a API 409 Conflict-ot adna vissza (már létezik a jármű). - Nincs "Transfer Request" nézet, ahol a felhasználó láthatná a bejövő és kimenő jármű igényléseit, és ahol jóváhagyhatná/elutasíthatná azokat. ### 2.3. A Blokkoló Hiba: 500-as hiba a Profile/Organization Switcher-ben Ahhoz, hogy a B2B és B2C (Private Garage vs. Corporate Fleet) nézeteket és járműveket érdemben tesztelni lehessen, a fiókváltás kritikus. Jelenleg a Profile Select / Org Switcher backend/frontend integrációja bizonyos API hívásoknál 500-as Internal Server Errorra fut, ami lehetetlenné teszi a különböző szerepkörök (Owner vs. Member, Private vs. Corporate) tiszta elkülönítését és tesztelését a Garage nézetben. ## 3. Következtetés Jelenleg egy "Ferrari motoros Trabantot" építettünk. A Backend enterprise szinten kezeli az állapottérgépet (State Machine), a minőségi pontozást és az eszköztulajdonosi konfliktusokat, míg a Frontend egy v1-es, "MVP" (Minimum Viable Product) szintű UI-t használ. Ezt a szakadékot azonnal, három célzott Issue (Gitea jegy) formájában kell áthidalnunk.