Identity-Preserving Soft Delete & Asset VIN/Plate OR-OR Validation #260

Closed
opened 2026-06-14 03:33:16 +02:00 by kincses · 3 comments
Owner

Mérföldkő: Backend Core & Identity

Cél: Két független funkció implementálása: (1) Asset VIN/License Plate OR-OR validáció DB és API szinten, (2) Person-preserving soft delete User törléshez.

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): SQLAlchemy models (asset.py, identity.py), Pydantic schemas (asset.py), AuthService
  • Kimenet (Mik támaszkodnak rá): DELETE /api/v1/users/me endpoint, frontend ProfileSettings.vue

📝 Elemzés

  • Asset CheckConstraint: vin IS NOT NULL OR license_plate IS NOT NULL néven ck_asset_vin_or_plate_required
  • Pydantic: @root_validator AssetCreate-ben, @model_validator(mode='after') AssetUpdate-ban
  • Soft delete: User is_deleted=True, is_active=False, deleted_at=utcnow, email anonymized; Person rekord érintetlen
  • DELETE /api/v1/users/me endpoint: AuthService.soft_delete_user hívása
  • Sync engine futtatva, CheckConstraint manuálisan létrehozva
  • 13/13 teszt passzolt
**Mérföldkő:** Backend Core & Identity **Cél:** Két független funkció implementálása: (1) Asset VIN/License Plate OR-OR validáció DB és API szinten, (2) Person-preserving soft delete User törléshez. ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** SQLAlchemy models (asset.py, identity.py), Pydantic schemas (asset.py), AuthService - **Kimenet (Mik támaszkodnak rá):** DELETE /api/v1/users/me endpoint, frontend ProfileSettings.vue ### 📝 Elemzés - Asset CheckConstraint: `vin IS NOT NULL OR license_plate IS NOT NULL` néven `ck_asset_vin_or_plate_required` - Pydantic: `@root_validator` AssetCreate-ben, `@model_validator(mode='after')` AssetUpdate-ban - Soft delete: User is_deleted=True, is_active=False, deleted_at=utcnow, email anonymized; Person rekord érintetlen - DELETE /api/v1/users/me endpoint: AuthService.soft_delete_user hívása - Sync engine futtatva, CheckConstraint manuálisan létrehozva - 13/13 teszt passzolt
kincses added the Type: FeatureStatus: In Progress labels 2026-06-14 03:34:07 +02:00
kincses started working 2026-06-14 03:34:07 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-14 03:34:07

▶️ **Munka megkezdve:** 2026-06-14 03:34:07
kincses added Status: Done and removed Status: In Progress labels 2026-06-14 03:34:14 +02:00
kincses worked for 7 seconds 2026-06-14 03:34:14 +02:00
Author
Owner

Munka befejezve: 2026-06-14 03:34:14

Technikai Összefoglaló:
Implementált: (1) Asset CheckConstraint ck_asset_vin_or_plate_required a vehicle.assets táblán, (2) Pydantic @root_validator és @model_validator az AssetCreate/AssetUpdate sémákban, (3) deleted_at oszlopok User és Person modelleken, (4) AuthService.soft_delete_user Person-preserving logikával, (5) DELETE /api/v1/users/me végpont. Sync engine futtatva, 13/13 teszt passzolt.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-14 03:34:14 **Technikai Összefoglaló:** Implementált: (1) Asset CheckConstraint ck_asset_vin_or_plate_required a vehicle.assets táblán, (2) Pydantic @root_validator és @model_validator az AssetCreate/AssetUpdate sémákban, (3) deleted_at oszlopok User és Person modelleken, (4) AuthService.soft_delete_user Person-preserving logikával, (5) DELETE /api/v1/users/me végpont. Sync engine futtatva, 13/13 teszt passzolt. ⏱️ *Az idő rögzítve.*
Author
Owner

Munka befejezve: 2026-06-14 03:43:06

Technikai Összefoglaló:
Identity-Preserving Soft Delete & Asset VIN/Plate OR-OR Validation - Teljes implementáció kész. Backend: CheckConstraint (vin IS NOT NULL OR license_plate IS NOT NULL), deleted_at oszlopok User/Person modelleken, Person-preserving soft_delete_user logika, DELETE /api/v1/users/me endpoint. Frontend: deleteAccount action az auth store-ban, piros 'Fiók törlése' gomb + megerősítő modal a ProfileView.vue-ban, i18n fordítások (hu/en). Build sikeres, 13/13 teszt passzolt.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-14 03:43:06 **Technikai Összefoglaló:** Identity-Preserving Soft Delete & Asset VIN/Plate OR-OR Validation - Teljes implementáció kész. Backend: CheckConstraint (vin IS NOT NULL OR license_plate IS NOT NULL), deleted_at oszlopok User/Person modelleken, Person-preserving soft_delete_user logika, DELETE /api/v1/users/me endpoint. Frontend: deleteAccount action az auth store-ban, piros 'Fiók törlése' gomb + megerősítő modal a ProfileView.vue-ban, i18n fordítások (hu/en). Build sikeres, 13/13 teszt passzolt. ⏱️ *Az idő rögzítve.*
Sign in to join this conversation.