import asyncio
import os
import sys

# On Windows, psycopg async mode needs SelectorEventLoop
if sys.platform == "win32":
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

# Add backend root to path to resolve imports correctly
backend_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if backend_dir not in sys.path:
    sys.path.append(backend_dir)

from sqlalchemy import text
from app.db.database import engine

async def run_migration():
    print("Initiating database migration for table 'postes'...")
    try:
        async with engine.begin() as conn:
            print("Executing ALTER TABLE query...")
            await conn.execute(text("""
                ALTER TABLE postes 
                ADD COLUMN IF NOT EXISTS style_metadata JSON DEFAULT '{}'::json;
            """))
            print("Column 'style_metadata' checked/added successfully!")
    except Exception as e:
        print(f"Error during migration: {e}", file=sys.stderr)
        sys.exit(1)

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