import asyncio
import os
from sqlalchemy.ext.asyncio import create_async_engine
from sqlalchemy import text
from dotenv import load_dotenv

load_dotenv()

raw_url = os.getenv("DATABASE_URL")
if not raw_url:
    raw_url = "postgresql://admin:PASSWORD_111@postgres-db:5432/service_finder"
DATABASE_URL = raw_url.replace("postgresql://", "postgresql+asyncpg://").replace("/service_finder_db", "/service_finder")

async def upgrade_db():
    print(f"🔌 Kapcsolódás...")
    engine = create_async_engine(DATABASE_URL)

    async with engine.begin() as conn:
        print("🌍 Felhasználói tábla bővítése (Ország + Alapértelmezett pénznem)...")
        # 1. Users tábla bővítése
        await conn.execute(text("""
            ALTER TABLE data.users 
            ADD COLUMN IF NOT EXISTS country VARCHAR(2) DEFAULT 'HU',
            ADD COLUMN IF NOT EXISTS default_currency VARCHAR(3) DEFAULT 'HUF';
        """))
        
        print("💶 Költség tábla bővítése (Tranzakciós pénznem)...")
        # 2. Costs tábla bővítése
        await conn.execute(text("""
            ALTER TABLE data.costs 
            ADD COLUMN IF NOT EXISTS currency VARCHAR(3) DEFAULT 'HUF';
        """))

        # Frissítjük a meglévő Demo Usert (ID=1)
        print("👤 Demo User beállítása: Magyarország / HUF")
        await conn.execute(text("""
            UPDATE data.users 
            SET country = 'HU', default_currency = 'HUF' 
            WHERE id = 1;
        """))

    print("✅ KÉSZ! Az adatbázis mostantól támogatja a több pénznemet.")
    await engine.dispose()

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