P0 ARCHITECTURE CLEANUP: Final Address Refactor (Ghost Columns & AddressManager) #392

Closed
opened 2026-07-01 17:20:22 +02:00 by kincses · 2 comments
Owner

Mérföldkő: Architecture Cleanup\nCél: A P0 kritikus search_organizations_by_name hiba javítása és P1 AddressManager kényszerítés az admin endpointokon\n\n### 🔗 Függőségek (Dependencies)\n- Bemenet (Mikre támaszkodik): Database (fleet.organizations, system.addresses, system.geo_postal_codes), AddressManager service\n- Kimenet (Mik támaszkodnak rá): Admin organization search, person update, organization update endpointok\n\n### 📝 Elemzés\nA docs/p0_address_manager_usage_audit_2026-07-01.md audit 3 kritikus hibát tárt fel:\n1. P0: admin.py:943 — Organization.address_city ghost column hivatkozás (search broken)\n2. P1: admin_persons.py:670-699 — Direkt Address mező írások AddressManager bypass-szal\n3. P1: admin_organizations.py — Ghost column hivatkozás list_organizations-ben\n\nA javítások:\n- P0: outerjoin(Address → GeoPostalCode) + GeoPostalCode.city használata\n- P1: AddressManager.create_or_update() bevezetése admin_persons.py-ban\n- P1: org.address.city relationship használata org.address_city helyett\n- OrganizationUpdate séma flat field-ek [DEPRECATED] jelölése\n- SQL cleanup script: 15 DROP COLUMN utasítás a ghost column-okhoz

**Mérföldkő:** Architecture Cleanup\n**Cél:** A P0 kritikus search_organizations_by_name hiba javítása és P1 AddressManager kényszerítés az admin endpointokon\n\n### 🔗 Függőségek (Dependencies)\n- **Bemenet (Mikre támaszkodik):** Database (fleet.organizations, system.addresses, system.geo_postal_codes), AddressManager service\n- **Kimenet (Mik támaszkodnak rá):** Admin organization search, person update, organization update endpointok\n\n### 📝 Elemzés\nA docs/p0_address_manager_usage_audit_2026-07-01.md audit 3 kritikus hibát tárt fel:\n1. P0: admin.py:943 — Organization.address_city ghost column hivatkozás (search broken)\n2. P1: admin_persons.py:670-699 — Direkt Address mező írások AddressManager bypass-szal\n3. P1: admin_organizations.py — Ghost column hivatkozás list_organizations-ben\n\nA javítások:\n- P0: outerjoin(Address → GeoPostalCode) + GeoPostalCode.city használata\n- P1: AddressManager.create_or_update() bevezetése admin_persons.py-ban\n- P1: org.address.city relationship használata org.address_city helyett\n- OrganizationUpdate séma flat field-ek [DEPRECATED] jelölése\n- SQL cleanup script: 15 DROP COLUMN utasítás a ghost column-okhoz
kincses added the Type: BugStatus: In Progress labels 2026-07-01 17:20:37 +02:00
kincses started working 2026-07-01 17:20:37 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-07-01 17:20:37

▶️ **Munka megkezdve:** 2026-07-01 17:20:37
kincses added Status: Done and removed Status: In Progress labels 2026-07-01 17:20:48 +02:00
kincses worked for 11 seconds 2026-07-01 17:20:48 +02:00
Author
Owner

Munka befejezve: 2026-07-01 17:20:47

Technikai Összefoglaló:
P0 ARCHITECTURE CLEANUP: Fixed 3 critical bugs from p0_address_manager_usage_audit. 1) P0: admin.py search_organizations_by_name — replaced Organization.address_city ghost column with GeoPostalCode.city via proper JOINs (Address → GeoPostalCode). 2) P1: admin_persons.py update_person — replaced 50+ lines of direct Address field writes with single AddressManager.create_or_update() call. 3) P1: admin_organizations.py list_organizations — replaced org.address_city with org.address.city relationship. 4) OrganizationUpdate schema flat fields marked [DEPRECATED]. 5) Generated docs/sql/cleanup_ghost_columns_2026_07.sql with 15 DROP COLUMN statements. Verified: all 3 files compile, imports resolve correctly, sync_engine reports 1274 OK.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-07-01 17:20:47 **Technikai Összefoglaló:** P0 ARCHITECTURE CLEANUP: Fixed 3 critical bugs from p0_address_manager_usage_audit. 1) P0: admin.py search_organizations_by_name — replaced Organization.address_city ghost column with GeoPostalCode.city via proper JOINs (Address → GeoPostalCode). 2) P1: admin_persons.py update_person — replaced 50+ lines of direct Address field writes with single AddressManager.create_or_update() call. 3) P1: admin_organizations.py list_organizations — replaced org.address_city with org.address.city relationship. 4) OrganizationUpdate schema flat fields marked [DEPRECATED]. 5) Generated docs/sql/cleanup_ghost_columns_2026_07.sql with 15 DROP COLUMN statements. Verified: all 3 files compile, imports resolve correctly, sync_engine reports 1274 OK. ⏱️ *Az idő rögzítve.*
Sign in to join this conversation.