# 🛠️ DEVELOPER NOTES & TROUBLESHOOTING ## 1. ADATBÁZIS ÉS SQL FIXEK ### Postgres Enum Case Sensitivity * **Probléma:** Az SQLAlchemy Enum típusa és a Postgres Enum típusa ütközhet, ha a Python kódban nagybetűs stringet (`USER`) küldünk. * **Megoldás:** Mindig használd a `.value` property-t vagy kényszerítsd a kisbetűs stringet: `role="user"`. ### Tábla oszlopok frissítése * **Probléma:** A `Base.metadata.create_all` nem adja hozzá az új oszlopokat a már meglévő táblákhoz. * **Megoldás:** Új mező esetén (pl. `social_provider`, `mothers_name`) manuális `ALTER TABLE` parancsot kell futtatni vagy Alembic migrációt generálni. ## 2. BACKEND API HIBÁK ### ImportError: create_access_token * **Ok:** A `app.core.security` modulban hiányzott a funkció, vagy elavult volt az import az `endpoints/auth.py`-ban. * **Javítás:** A `security.py`-nak tartalmaznia kell a `jose` könyvtárat használó tokengenerálást. ### Üres Swagger (OpenAPI) felület * **Ok:** Ha az SQLAlchemy Mapper vagy egy Pydantic séma importja hibás, a FastAPI nem tudja legenerálni a dokumentációt. * **Javítás:** Ellenőrizd a `docker logs` kimenetét indításkor, keresd a `MapperConfigurationError` vagy `ImportError` sorokat. # 17. Developer Notes & Pitfalls ## 17.1. SQLAlchemy & Circular Imports **Hiba:** `InvalidRequestError: Mapper has no property 'organization'` **Ok:** Ha egy modellben definiálsz egy `ForeignKey`-t, de nem adod hozzá a `relationship`-et, a SQLAlchemy mapper inicializáláskor összeomolhat, ha egy másik modell próbál hivatkozni rá (back_populates). **Megoldás:** Mindig párban definiáld a kapcsolatokat (FK + relationship). **Példa javítás (AssetAssignment):** ```python organization_id = Column(Integer, ForeignKey("data.organizations.id")) organization = relationship("Organization") # Ez hiányzott! 17.2. Configuration Missing Hiba: AttributeError: 'Settings' object has no attribute 'STATIC_DIR' Tanulság: Ha fájlrendszer műveleteket végzel (pl. JSON export), mindig a core/config.py-ban definiáld az abszolút útvonalakat (BASE_DIR, STATIC_DIR), ne hardkódolj útvonalakat a service fájlokban. 17.3. Database Migrations Best Practice: Ha mezőt adsz hozzá egy modellhez (pl. User.region_code), azonnal generálj Alembic migrációt (alembic revision --autogenerate), különben az API 500-as hibát dob, mert a Python objektum attribútuma létezik, de az SQL lekérdezés nem adja vissza az oszlopot.