refaktor címtár

This commit is contained in:
Roo
2026-07-01 19:49:58 +00:00
parent 6e627d0ebe
commit 7654913d21
198 changed files with 3485 additions and 1609 deletions

View File

@@ -11,7 +11,7 @@ logger = logging.getLogger("admin-endpoints")
from app.api import deps
from app.models.identity import User, UserRole, Person # JAVÍTVA: Központi import
from app.models.identity.address import Address
from app.models.identity.address import Address, GeoPostalCode
from app.models.system import SystemParameter, ParameterScope
from app.services.system_service import system_service
# JAVÍTVA: Security audit modellek
@@ -623,23 +623,12 @@ async def list_users(
seen_ids.add(row.id)
unique_users.append(row)
from app.schemas.address import AddressOut
user_list = []
for u in unique_users:
person = u.person
address = person.address if person else None
# Cím összefűzése
address_str = None
if address:
parts = []
if address.zip:
parts.append(str(address.zip))
if address.city:
parts.append(str(address.city))
if address.street_name:
parts.append(str(address.street_name))
if address.house_number:
parts.append(str(address.house_number))
address_str = ', '.join(parts) if parts else None
# Személy nevének összefűzése
person_name = None
@@ -663,12 +652,8 @@ async def list_users(
"first_name": person.first_name if person else None,
"last_name": person.last_name if person else None,
"phone": person.phone if person else None,
# Címadatok
"postal_code": str(address.zip) if address and address.zip else None,
"city": address.city if address and address.city else None,
"street": address.street_name if address and address.street_name else None,
"house_number": address.house_number if address and address.house_number else None,
"address": address_str,
# Címadatok — egységes AddressOut formátumban
"address": AddressOut.model_validate(address) if address else None,
})
return {
@@ -943,6 +928,8 @@ async def search_organizations(
"""
from app.models.marketplace.organization import Organization
# P0 FIX: Join with system.addresses and system.geo_postal_codes
# instead of selecting the ghost column Organization.address_city.
stmt = (
select(
Organization.id,
@@ -955,11 +942,13 @@ async def search_organizations(
Organization.is_verified,
Organization.is_active,
Organization.is_deleted,
Organization.address_city,
GeoPostalCode.city.label("city"),
Organization.region,
Organization.segment,
Organization.created_at,
)
.outerjoin(Address, Organization.address_id == Address.id)
.outerjoin(GeoPostalCode, Address.postal_code_id == GeoPostalCode.id)
.where(
or_(
Organization.full_name.ilike(f"%{name}%"),
@@ -987,7 +976,7 @@ async def search_organizations(
"is_verified": row.is_verified,
"is_active": row.is_active,
"is_deleted": row.is_deleted,
"city": row.address_city,
"city": row.city,
"region": row.region,
"segment": row.segment,
"created_at": row.created_at.isoformat() if row.created_at else None,