# 📐 Logic Spec: Fix Double API Prefix & Execute 4-Level Architecture ## 1. Modul cĂ©lja Ă©s Masterbook 2 illeszkedĂ©s **CĂ©l:** A frontend jĂĄrmƱvek lekĂ©rĂ©sĂ©nek javĂ­tĂĄsa (Double API Prefix → 404 hiba), majd a jĂĄrmƱ UI 4-szintƱ rĂ©teges architektĂșrĂĄjĂĄnak kialakĂ­tĂĄsa a kĂłd-duplikĂĄciĂł megszĂŒntetĂ©sĂ©vel. **Masterbook 2.0 illeszkedĂ©s:** A feladat az Epic 11 (Public Frontend) Ă©s a B2C Dashboard UX stabilizĂĄlĂĄsĂĄhoz tartozik. --- ## 2. ProblĂ©maelemzĂ©s ### 🔮 Bug #1: Double API Prefix Crash | RĂ©teg | FĂĄjl | Sor | Tartalom | ProblĂ©ma | |-------|------|-----|----------|----------| | **Env** | `frontend/.env` | 1 | `VITE_API_BASE_URL=https://dev.servicefinder.hu/api/v1` | **OK** - base URL helyes | | **Axios** | `frontend/src/api/axios.ts:4` | 4 | `baseURL: import.meta.env.VITE_API_BASE_URL` | **OK** - base URL = `/api/v1` | | **Store** | `frontend/src/stores/vehicle.ts:63` | 63 | `api.get('/api/v1/assets/vehicles')` | **🔮 HIBÁS** - dupla prefix! | | **EredmĂ©ny URL** | | | `https://dev.servicefinder.hu/api/v1/api/v1/assets/vehicles` | **404 Not Found** | ### 🔮 Bug #2: DuplikĂĄlt Mock Adatok | FĂĄjl | Sorok | Tartalom | |------|-------|----------| | `DashboardView.vue:368` | 368-426 | `MockVehicle` interface + 3 mock vehicle | | `PrivateVehicleManager.vue:248` | 248-306 | `MockVehicle` interface + 3 mock vehicle | --- ## 3. 4-Level Architecture Design ``` Level 1: types/vehicle.ts (VehicleData interface) Level 2: data/mockVehicles.ts (mock vehicles array) Level 3: components/vehicle/ (3 Ășj komponens) Level 4: DashboardView + PrivateVehicleManager + VehicleDetailModal (refaktor) ``` ### Level 1: `frontend/src/types/vehicle.ts` Unified `VehicleData` interface covering both API response and mock data. ### Level 2: `frontend/src/data/mockVehicles.ts` Single source of mock data, imported by all consumers. ### Level 3: 3 Ășj komponens - **VehiclePlateBadge.vue** - EU plate badge (sm/md/lg sizes) - **VehicleCardCompact.vue** - Mini dashboard card - **VehicleCardStandard.vue** - Full carousel card ### Level 4: Refaktor - VehicleDetailModal ĂĄthelyezĂ©se `dashboard/` → `vehicle/` - DashboardView: inline card → VehicleCardCompact - PrivateVehicleManager: inline card → VehicleCardStandard --- ## 4. Érintett fĂĄjlok | # | FĂĄjl | MƱvelet | |---|------|---------| | 1 | `frontend/src/stores/vehicle.ts` | **JAVÍTÁS** - `/api/v1` prefix eltĂĄvolĂ­tĂĄsa | | 2 | `frontend/src/types/vehicle.ts` | **LÉTREHOZÁS** - VehicleData interface | | 3 | `frontend/src/data/mockVehicles.ts` | **LÉTREHOZÁS** - mock adatok | | 4 | `frontend/src/components/vehicle/VehiclePlateBadge.vue` | **LÉTREHOZÁS** | | 5 | `frontend/src/components/vehicle/VehicleCardCompact.vue` | **LÉTREHOZÁS** | | 6 | `frontend/src/components/vehicle/VehicleCardStandard.vue` | **LÉTREHOZÁS** | | 7 | `frontend/src/components/vehicle/VehicleDetailModal.vue` | **LÉTREHOZÁS** (ĂĄthelyezve) | | 8 | `frontend/src/components/dashboard/VehicleDetailModal.vue` | **TÖRLÉS** | | 9 | `frontend/src/views/DashboardView.vue` | **REFACTOR** | | 10 | `frontend/src/components/dashboard/PrivateVehicleManager.vue` | **REFACTOR** | --- ## 5. MĂłdosĂ­tĂĄsi sorrend 1. `vehicle.ts` → Fix API prefix 2. `types/vehicle.ts` → LĂ©trehozĂĄs 3. `data/mockVehicles.ts` → LĂ©trehozĂĄs 4. `VehiclePlateBadge.vue` → LĂ©trehozĂĄs 5. `VehicleCardCompact.vue` → LĂ©trehozĂĄs 6. `VehicleCardStandard.vue` → LĂ©trehozĂĄs 7. `VehicleDetailModal.vue` → ÁthelyezĂ©s + tĂ­pusosĂ­tĂĄs 8. `DashboardView.vue` → Refaktor (VehicleCardCompact) 9. `PrivateVehicleManager.vue` → Refaktor (VehicleCardStandard) 10. `vite build` → VerifikĂĄciĂł --- ## ⏞ JĂłvĂĄhagyĂĄsi pont **KĂ©rem a felhasznĂĄlĂł jĂłvĂĄhagyĂĄsĂĄt a fenti specifikĂĄciĂłhoz!**