# app/tests_internal/test_postgis.py
import asyncio
from sqlalchemy import text
from app.db.session import AsyncSessionLocal

async def test_geo_logic():
    """
    THOUGHT PROCESS:
    Ellenőrizni kell, hogy a PostgreSQL-ben a 'fleet.branches' tábla 'location' oszlopa
    valóban GEOGRAPHY típusú-e, és az ST_Distance függvény működik-e.
    Ha ez elbukik, a 'search.py' nem fog eredményt adni.
    """
    print("🌍 PostGIS távolságszámítás tesztelése...")
    async with AsyncSessionLocal() as session:
        try:
            # Egy teszt pont (Budapest központ) és egy körzet lekérdezése
            query = text("""
                SELECT id, name, 
                ST_Distance(location, ST_SetSRID(ST_MakePoint(19.0402, 47.4979), 4326)::geography) / 1000 as distance_km
                FROM fleet.branches
                LIMIT 1
            """)
            result = await db.execute(query)
            row = result.fetchone()
            if row:
                print(f"✅ SIKER: Találtunk egy ágat ({row.name}) {row.distance_km:.2f} km távolságra.")
            else:
                print("⚠️ FIGYELEM: A lekérdezés lefutott, de nincsenek adatok a fleet.branches táblában.")
        except Exception as e:
            print(f"❌ HIBA: A PostGIS lekérdezés elbukott. Oka: {str(e)}")

if __name__ == "__main__":
    asyncio.run(test_geo_logic())