frontend kínlódás

This commit is contained in:
Roo
2026-03-31 06:20:43 +00:00
parent 2508ae7452
commit c7cbe60976
46 changed files with 6091 additions and 136 deletions

View File

@@ -241,4 +241,52 @@ A felhasználó mobil eszközről (app.servicefinder.hu domain) "Failed to fetch
#### Technikai részletek:
- A probléma oka: A frontend konténerben a `VITE_API_BASE_URL` változó abszolút URL-t tartalmazott, ami mobil eszközökön cross-origin kéréseket eredményezett
- A megoldás: Relatív URL (`/api/v1`) használata, amely a proxy (nginx) által a megfelelő backend szolgáltatáshoz irányul
- A "|| 1" fallback-ok eltávolítása kritikus volt a multi-tenant architektúra integritásának megőrzéséhez
- A "|| 1" fallback-ok eltávolítása kritikus volt a multi-tenant architektúra integritásának megőrzéséhez
## Digital Twin & Asset Refactor: "Thick Digital Twin" Architecture
**Dátum:** 2026-03-30
**Státusz:** Kész ✅
**Kapcsolódó fájlok:** `backend/app/models/vehicle/asset.py`, `docs/v02/99_Adattarolás.md`
### Technikai Összefoglaló
A "thin" Asset modellből "Thick Digital Twin" architektúrára való átállás sikeresen implementálva. A refaktor célja, hogy minden technikai, fizikai és felszerelési részletet tároljunk minden egyedi járműhöz, miközben megőrizzük a változások történetét.
#### Főbb Implementációk:
1. **Asset modell bővítése** (`backend/app/models/vehicle/asset.py`):
- **Azonosítás**: id, vin, license_plate, catalog_id (meglévő)
- **Osztályozás**: vehicle_class (VehicleClassEnum), brand, model, trim_level
- **Műszaki specifikációk**: fuel_type, engine_capacity, power_kw, torque_nm, cylinder_layout, transmission_type, drive_type, euro_classification
- **Fizikai méretek**: curb_weight, max_weight, cargo_volume_x, cargo_volume_y, door_count, seat_count
- **Felszereltség**: roof_type (RoofTypeEnum), audio_system_type, individual_equipment (JSONB)
- **Állapot**: current_mileage, condition_score, status (meglévő)
2. **Digitális Szervizkönyv (AssetEvent)**:
- Bővítve a Digital Service Book logikához
- Új mezők: user_id, organization_id (szolgáltató), odometer_reading, description, cost_id (opcionális AssetCost kapcsolat)
- Eseménytípusok: SERVICE, REPAIR, ACCIDENT, INSPECTION, TIRE_CHANGE, MAINTENANCE, UPGRADE, RECALL
3. **Adatbázis migráció**:
- Sync engine sikeresen futtatva: `docker exec sf_api python -m app.scripts.sync_engine`
- 28 új oszlop hozzáadva a `vehicle.assets` táblához
- 8 új oszlop hozzáadva a `vehicle.asset_events` táblához
- Visszafelé kompatibilitás biztosítva: minden új mező Optional
4. **Enum definíciók**:
- `VehicleClassEnum`: 10 járműosztály (személy, motorkerékpár, kishaszon, haszon, munkagép, stb.)
- `RoofTypeEnum`: 12 tetőtípus (lemeztető, vászontető, nyitható keménytető, panorámatető, stb.)
- `AssetEventTypeEnum`: 8 eseménytípus a Digitális Szervizkönyvhöz
#### Eredmény:
- **Teljes körű Digital Twin adatmodell** kész a 99_Adattarolás.md specifikáció alapján
- **Visszafelé kompatibilis migráció** - meglévő adatok sértetlenek maradnak
- **Szinkronizált adatbázis séma** - minden új mező elérhető a PostgreSQL-ben
- **Bővíthető architektúra** - a JSONB mezők (individual_equipment) lehetővé teszik dinamikus felszerelések tárolását
#### Technikai részletek:
- A refaktor követi a "Surgical Coding" elvet: csak a szükséges módosítások, minimális rizikó
- Az új mezők Optional típusúak, így a meglévő rekordok automatikusan NULL értékkel rendelkeznek
- A sync engine 969 elem ellenőrzéséből 28 javítást hajtott végre (3% változás)
- A profile_completion_percentage számítás frissítve, hogy figyelembe vegye az új brand és model mezőket

View File

@@ -27,6 +27,6 @@ Mielőtt egy feladatot (Gitea issue/kártya) "Kész"-nek nyilvánítasz a felhas
- **Docker Compose V2:** Mindig a `docker compose` (szóközzel) parancsot használd, SOHA ne a kötőjeles `docker-compose`-ot. Ez a projekt Docker Compose V2-t használ.
- **Színséma:** Sárga szöveg (#ffff00) TILOS világos háttereken. Használj helyette a #1e3a8a (sötétkék) színt a kiemelésekhez.
- **Adatbázis Verifikáció:** Minden adatbázis-módosítás előtt és után futtasd a `sync_engine.py` szkriptet a konténeren belül a séma konzisztencia ellenőrzéséhez:
`docker compose exec roo-helper python3 /app/backend/app/scripts/sync_engine.py`
`docker compose exec sf_api python3 /app/backend/app/scripts/sync_engine.py`
- **Jegy Verifikáció:** Minden Gitea kártya állapotát a `gitea_manager.py` scripttel ellenőrizd (pl. `get <id>`) a műveletek előtt.
- **Kötelező 2lépéses járműfolyamat (Draft → Active):** Minden új járműrekordot először `DRAFT` státuszban kell létrehozni, majd csak explicit aktiválás után vált `ACTIVE` státuszra. Ez a szabály a `data.vehicles` táblára vonatkozik, és a robotoknak is be kell tartaniuk.

View File

@@ -1,13 +1,13 @@
# ⚡ RENDSZER ADATOK (FIX)
- **Gitea API Token:** d7a0142b5c512ec833307447ed5b7ba8c0bdba9a
- **Project ID:** (Keresd ki egyszer: `docker exec roo-helper python3 /scripts/gitea_manager.py` parancsal, ha kiírja, írd ide fixen!)
- **Project ID:** (Keresd ki egyszer: `docker exec sf_api python3 /scripts/gitea_manager.py` parancsal, ha kiírja, írd ide fixen!)
- **Szabály:** TILOS a műveletek szimulálása. Ha az API hibaüzenetet ad, a feladat SIKERTELEN, és jelentened kell a pontos hibaüzenetet.
# 🗺️ ROO CODE NAVIGÁCIÓS TÉRKÉP
- **Munkaterületed (Workspace):** `/opt/docker/dev/service_finder`
- **Saját scriptjeid helye:** `.roo/scripts/`
- **Futtató környezet:** `roo-helper` konténer
- **Futtatási parancs:** `docker exec roo-helper python3 /scripts/[fájlnév].py`
- **Futtató környezet:** `sf_api` konténer
- **Futtatási parancs:** `docker exec sf_api python3 /scripts/[fájlnév].py`
## Gitea Fix Adatok:
- **Owner:** kincses
@@ -15,19 +15,19 @@
- **Project:** Master Book 2.0
. ELÉRHETŐ GITEA PARANCSOK:
- LISTÁZÁS: 'docker exec roo-helper python3 /scripts/gitea_manager.py list'
- RÉSZLETEK: 'docker exec roo-helper python3 /scripts/gitea_manager.py get <issue_id>'
- INDÍTÁS: 'docker exec roo-helper python3 /scripts/gitea_manager.py start <issue_id>'
- LEZÁRÁS: 'docker exec roo-helper python3 /scripts/gitea_manager.py finish <issue_id>'
- FRISSÍTÉS (ÚJ!): 'docker exec roo-helper python3 /scripts/gitea_manager.py update <issue_id> --title "Új cím" --body "Új leírás"'
- LISTÁZÁS: 'docker exec sf_api python3 /scripts/gitea_manager.py list'
- RÉSZLETEK: 'docker exec sf_api python3 /scripts/gitea_manager.py get <issue_id>'
- INDÍTÁS: 'docker exec sf_api python3 /scripts/gitea_manager.py start <issue_id>'
- LEZÁRÁS: 'docker exec sf_api python3 /scripts/gitea_manager.py finish <issue_id>'
- FRISSÍTÉS (ÚJ!): 'docker exec sf_api python3 /scripts/gitea_manager.py update <issue_id> --title "Új cím" --body "Új leírás"'
# 🛠️ TERMINÁL HASZNÁLATI SZABÁLYOK (KRITIKUS)
1. **Helyi környezet korlátja:** A helyi terminálban NINCS Python, NINCS adatbázis elérés. SOHA ne futtass közvetlen parancsokat (pl. `python ...`, `pip ...`, `pytest ...`).
2. **Kötelező prefix:** Minden végrehajtandó parancsot a `docker compose exec roo-helper` előtaggal kell futtatnod.
2. **Kötelező prefix:** Minden végrehajtandó parancsot a `docker compose exec sf_api` előtaggal kell futtatnod.
3. **Munkakönyvtár kezelése:** Ha a parancsot egy alkönyvtárban kell futtatni, azt a konténeren belül tedd meg.
- **Hibás:** `cd backend && python -m app.scripts...`
- **Helyes:** `docker compose exec roo-helper /bin/sh -c "cd /app/backend && python3 -m app.scripts.unified_db_audit"`
- **Helyes:** `docker compose exec sf_api /bin/sh -c "cd /app/backend && python3 -m app.scripts.unified_db_audit"`
# CRITICAL DATABASE SYNC RULE:
NEVER use alembic upgrade head or try to resolve Alembic migration conflicts manually unless explicitly instructed. The Masterbook 2.0.1 architecture uses a custom synchronization engine.

View File

@@ -1,28 +1,28 @@
# 🤖 ÉLES MUNKAFOLYAMAT (KÖTELEZŐ)
A feladataidat szigorúan a `gitea_manager.py` script segítségével kell menedzselned a `roo-helper` konténerben.
A feladataidat szigorúan a `gitea_manager.py` script segítségével kell menedzselned a `sf_api` konténerben.
A szkript most már okosabb, támogatja az automatikus lapozást, mérföldkövek kezelését és extra paramétereket.
## 📋 ELÉRHETŐ PARANCSOK
### 1. Listázás és Információ
- **Feladatok listázása:** `docker exec roo-helper python3 /scripts/gitea_manager.py list`
- **Lezárt feladatok:** `docker exec roo-helper python3 /scripts/gitea_manager.py list closed`
- **Mérföldkövek listázása:** `docker exec roo-helper python3 /scripts/gitea_manager.py ms list`
- **Feladat részletei:** `docker exec roo-helper python3 /scripts/gitea_manager.py get <id>`
- **Feladatok listázása:** `docker exec sf_api python3 /scripts/gitea_manager.py list`
- **Lezárt feladatok:** `docker exec sf_api python3 /scripts/gitea_manager.py list closed`
- **Mérföldkövek listázása:** `docker exec sf_api python3 /scripts/gitea_manager.py ms list`
- **Feladat részletei:** `docker exec sf_api python3 /scripts/gitea_manager.py get <id>`
### 2. Mérföldkövek Kezelése
- **Új mérföldkő létrehozása:** `docker exec roo-helper python3 /scripts/gitea_manager.py ms create "Mérföldkő Neve" "Leírás" --due YYYY-MM-DD`
- **Mérföldkövek listázása:** `docker exec roo-helper python3 /scripts/gitea_manager.py ms list`
- **Új mérföldkő létrehozása:** `docker exec sf_api python3 /scripts/gitea_manager.py ms create "Mérföldkő Neve" "Leírás" --due YYYY-MM-DD`
- **Mérföldkövek listázása:** `docker exec sf_api python3 /scripts/gitea_manager.py ms list`
### 3. Feladat Felvétele (Get)
Amikor megkapod, hogy dolgozz pl. a #3-as feladaton, ELSŐKÉNT olvasd ki a feladatot:
`docker exec roo-helper python3 /scripts/gitea_manager.py get 3`
`docker exec sf_api python3 /scripts/gitea_manager.py get 3`
Értelmezd a kapott címet, leírást és mérföldkövet.
### 4. Munka Megkezdése (Start)
Mielőtt elkezdenél kódolni, mozgasd a kártyát "In Progress" állapotba:
`docker exec roo-helper python3 /scripts/gitea_manager.py start 3`
`docker exec sf_api python3 /scripts/gitea_manager.py start 3`
### 5. Fejlesztés és Dokumentálás
- Végezd el a kért kódolási feladatot.
@@ -30,20 +30,20 @@ Mielőtt elkezdenél kódolni, mozgasd a kártyát "In Progress" állapotba:
### 6. Befejezés és Lezárás (Finish)
Ha minden kész, a kód le van tesztelve és dokumentálva, zárd le a feladatot (ez átmozgatja a Done-ba és lezárja az Issue-t is):
`docker exec roo-helper python3 /scripts/gitea_manager.py finish 3 "Rövid technikai összefoglaló"`
`docker exec sf_api python3 /scripts/gitea_manager.py finish 3 "Rövid technikai összefoglaló"`
### 7. Új Feladatok Létrehozása (Create)
Ha auditálást végzel, és hiányzó funkciókat találsz, önállóan hozz létre ToDo kártyákat:
**Alap parancs:**
`docker exec roo-helper python3 /scripts/gitea_manager.py create "Kártya Címe" "Részletes leírás Markdown formátumban"`
`docker exec sf_api python3 /scripts/gitea_manager.py create "Kártya Címe" "Részletes leírás Markdown formátumban"`
**Teljes szintaxis opciókkal:**
`docker exec roo-helper python3 /scripts/gitea_manager.py create "Cím" "Leírás" [Mérföldkő] [Címkék...] [--due YYYY-MM-DD] [--assign username]`
`docker exec sf_api python3 /scripts/gitea_manager.py create "Cím" "Leírás" [Mérföldkő] [Címkék...] [--due YYYY-MM-DD] [--assign username]`
**Példák:**
- `docker exec roo-helper python3 /scripts/gitea_manager.py create "API végpont hozzáadása" "Új POST /vehicles endpoint..." "DDD Refaktor" "Scope: Backend" "Type: Feature" --due 2026-03-15 --assign kincses`
- `docker exec roo-helper python3 /scripts/gitea_manager.py create "Hibajavítás" "Fix SQL injection..." "Scope: Database" "Type: Bug"`
- `docker exec sf_api python3 /scripts/gitea_manager.py create "API végpont hozzáadása" "Új POST /vehicles endpoint..." "DDD Refaktor" "Scope: Backend" "Type: Feature" --due 2026-03-15 --assign kincses`
- `docker exec sf_api python3 /scripts/gitea_manager.py create "Hibajavítás" "Fix SQL injection..." "Scope: Database" "Type: Bug"`
**Címke típusok:**
- **Státusz:** `Status: To Do`, `Status: In Progress`, `Status: Done`, `Status: Blocked`

View File

@@ -16,19 +16,19 @@ Minden egyes vizsgált fájlnál vagy modulnál az alábbi lépéseket kell vég
### 1. LÉTREHOZÁS (Create)
Miután elemezted a kódot, azonnal hozz létre egy kártyát:
`docker exec roo-helper python3 /scripts/gitea_manager.py create "[CÍM]" "[SABLON_TARTALMA]" "Scope: [IDEILLŐ]" "Type: [IDEILLŐ]"`
`docker exec sf_api python3 /scripts/gitea_manager.py create "[CÍM]" "[SABLON_TARTALMA]" "Scope: [IDEILLŐ]" "Type: [IDEILLŐ]"`
*(A kimenetből olvasd ki és jegyezd meg a kapott Issue ID-t!)*
### 2. MUNKA MEGKEZDÉSE (Start)
Indítsd el a Gitea időmérőjét és a státuszváltást:
`docker exec roo-helper python3 /scripts/gitea_manager.py start [ID]`
`docker exec sf_api python3 /scripts/gitea_manager.py start [ID]`
### 3. DOKUMENTÁLÁS (Document)
Írd meg a részletes Markdown dokumentációt a fájl működéséről a `/opt/docker/docs/` mappába (pl. `modul_neve_analysis.md`).
### 4. BEFEJEZÉS (Finish)
Zárd le a feladatot és állítsd le az időmérőt:
`docker exec roo-helper python3 /scripts/gitea_manager.py finish [ID]`
`docker exec sf_api python3 /scripts/gitea_manager.py finish [ID]`
---