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

@@ -2,10 +2,11 @@
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select, func, or_
from sqlalchemy.orm import selectinload
from sqlalchemy.orm import selectinload, joinedload
from app.db.session import get_db
from app.api.deps import get_current_user
from app.models.marketplace.organization import Organization, Branch
from app.models.identity.address import Address, GeoPostalCode
from geoalchemy2 import WKTElement
from typing import Optional
@@ -23,16 +24,24 @@ async def match_service(
"""
Geofencing keresőmotor PostGIS segítségével.
Ha nincs megadva lat/lng, akkor nem alkalmazunk távolságszűrést.
P0 UNIFIED ADDRESS REFACTOR (2026-07-01): A Branch.city denormalizált
mező helyett az Address → GeoPostalCode kapcsolaton keresztül érjük el
a város adatokat. LEFT JOIN-t használunk, mert az address_id lehet NULL.
"""
# Alap lekérdezés: aktív szervezetek és telephelyek
query = select(
Organization.id,
Organization.name,
Branch.city,
GeoPostalCode.city.label("city"),
Branch.branch_rating,
Branch.location
).join(
Branch, Organization.id == Branch.organization_id
).outerjoin(
Address, Address.id == Branch.address_id
).outerjoin(
GeoPostalCode, GeoPostalCode.id == Address.postal_code_id
).where(
Organization.is_active == True,
Branch.is_deleted == False