# B2B Meghívó és Shadow Identity Specifikáció ## 1. Modul célja és Masterbook 2 illeszkedés A fejlesztés célja a B2B flotta csatlakozási folyamat megvalósítása a Masterbook 2 "Shadow Identity Check" logikájával. A tulajdonosok vagy adminisztrátorok e-mail alapján meghívhatnak tagokat a szervezetükbe. ## 2. Adatmodell változások (Alembic terv) A `VerificationToken` táblában szükséges a `user_id` mezőt nullable-re állítani, valamint egy `extra_data` JSON mezőt hozzáadni a meghívó metaadatainak (org_id, role, email) tárolásához, mivel új (még nem regisztrált) felhasználók számára is készülhet meghívó token. A `sync_engine.py` segítségével legeneráljuk az Alembic migrációt. ## 3. Shadow Identity Check Logika A `complete_kyc` folyamat során, mielőtt egy frissen regisztrált `User` `Person` rekordja véglegesítésre kerülne, a rendszer azonosítja a "Shadow" profilokat a `last_name`, `first_name` (és opcionálisan `birth_date`) alapján. - Ha egyezés van: az új `User` megörökli az eddig "Shadow" formában (pl. AI általi OCR betöltéssel) létező `Person` rekordot, és a megárvult eredeti `Person` rekord deaktiválódik. ## 4. Új API Végpontok (`organizations.py`) - `POST /{org_id}/invitations`: Meghívó küldése (e-mail ellenőrzéssel). Meglévő felhasználónál `OrganizationMember` készül "pending" státusszal. Új felhasználónál `VerificationToken` generálódik. - `POST /invitations/{token}/accept`: Meghívó elfogadása token alapján. ## 5. Tesztelés E2E teszt script (`test_invitation_e2e.py`) futtatása az `sf_api` konténerben a fenti forgatókönyvek ellenőrzésére.