Files
service-finder/docs/admin_garage_system_identifiers_bug_analysis.md

4.8 KiB

🔍 Admin Garázs Részletek — Rendszer Azonosítók Bug Analysis

Dátum: 2026-06-26 URL: GET /api/v1/admin/organizations/{org_id}/details Érintett garázs: org_id=43 (Accipe Tímea - Privát Garázs)


Probléma Leírás

Az admin oldalon a Garázs menü → General Tab → Cégadatok → Rendszer Azonosítók blokkban 3 értéknek kellene megjelennie:

Mező Várt érték Tényleges Státusz
Garázs ID 43 43 OK
User ID (tulajdonos) 79 N/A HIBA
Person ID (tulajdonos) (valami szám) N/A HIBA

Root Cause Analysis

HIBA #1 — User ID nem töltődik be

Hely: frontend_admin/pages/garages/[id]/index.vue:200

<span>User ID: <span>{{ garage.owner?.id || 'N/A' }}</span></span>

A frontend a garage.owner?.id kifejezéssel próbálja elérni a tulajdonos User ID-ját.

A probléma: A GarageDetailsResponse Pydantic séma (backend/app/api/v1/endpoints/admin_organizations.py:127-172) nem tartalmaz owner mezőt! A séma jelenlegi mezői:

  • owner_person_id: Optional[int] (sor 170) — letezik
  • owner_user_id — NEM LETEZIK
  • owner object — NEM LETEZIK

Mivel a backend válaszban nincs owner kulcs, garage.owner mindig undefined, igy garage.owner?.id is undefined, ami a || 'N/A' miatt 'N/A'-ra esik vissza.

Adat elerhetoseg: A backend lekeri az org.owner-t (User modell) a 398. sorban:

selectinload(Organization.owner).selectinload(User.person)

Es elerheto az 503-514. sorokban:

owner: Optional[User] = org.owner  # User objektum, id=79

Tehat az adat rendelkezesre all a backendben, csak nincs kiteve a valaszban.


HIBA #2 — Person ID nem toltodik be

Hely: frontend_admin/pages/garages/[id]/index.vue:201

<span>Person ID: <span>{{ garage.owner_person_id ?? 'N/A' }}</span></span>

A frontend a garage.owner_person_id mezot olvassa. Ez a mezo letezik a GarageDetailsResponse semaban (sor 170) es a backend be is tolti a 648. sorban:

owner_person_id=owner_person.id if owner_person else None,

Lehetseges okok:

  1. owner.person (a User-hez tartozo Person rekord) None az adatbazisban
  2. A PersonBrief sema (backend/app/schemas/organization.py:37-43) id: Optional[int] = None mezoje None, igy a szemely rekord ID-ja nem elerheto

Megfigyeles: A members[0].person objektumban sincs id mezo a valaszban, ami arra utal, hogy a person.id None a serializacio soran.


Adatfolyam Diagram

[Adatbazis]            [Backend API]                       [Frontend]

User (id=79) --------> org.owner (elerheto) -----+
  |                                                |
  v                                                v
Person (id=?) -------> owner_person -------------+
                                                   |
                                                   v
                                        GarageDetailsResponse
                                          +-- id: 43 OK
                                          +-- owner? -> NINCS
                                          +-- owner_user_id? -> NINCS
                                          +-- owner_person_id -> null
                                                   |
                                                   v
                                        garage.owner?.id -> N/A
                                        garage.owner_person_id -> N/A

Javítási Terv

1. Backend modositas — owner_user_id hozzaadasa

Fajl: backend/app/api/v1/endpoints/admin_organizations.py

A) Sema bovites (sor 170 korul):

# P0: Owner user ID for frontend display
owner_user_id: Optional[int] = None

B) Valasz bovites (sor 648 korul, a return elott):

owner_user_id=owner.id if owner else None,

2. Frontend modositas — Helyes mezohivatkozas

Fajl: frontend_admin/pages/garages/[id]/index.vue

Sor 200 modositasa:

<!-- HIBA: garage.owner?.id -> garage.owner nem letezik -->
<span>User ID: <span>{{ garage.owner?.id || 'N/A' }}</span></span>

<!-- JAVITAS: garage.owner_user_id -> uj mezo -->
<span>User ID: <span>{{ garage.owner_user_id ?? 'N/A' }}</span></span>

Sor 201 (maradhat):

<span>Person ID: <span>{{ garage.owner_person_id ?? 'N/A' }}</span></span>

API Valasz (Javitas utan varhato)

{
  "id": 43,
  "owner_user_id": 79,
  "owner_person_id": 38,
  ...
}

Megjegyzes

A vizsgalt garazs (org_id=43) a private_pro_v1 csomaggal rendelkezik:

  • max jarmu: 3
  • max garazs: 1
  • havi kredit: 0

A members tombben a tulajdonos (user_id=79) OWNER role-lal szerepel, es a person adatai (first_name, last_name, email, phone) rendelkezesre allnak, de a person.id nincs kitoltve a valaszban.