"""One-time migration: replace emoji icon values with Fluent Color icon names."""
import asyncio
from sqlmodel import select
from sqlmodel.ext.asyncio.session import AsyncSession
from app.core.db import async_engine
from app.models.models import Topic

ICON_MAP = {
    'apis':           'fluent-color:wifi-24',
    'algorithms':     'fluent-color:puzzle-piece-24',
    'database':       'fluent-color:database-24',
    'designpatterns': 'fluent-color:design-ideas-24',
    'git':            'fluent-color:org-24',
    'javascript':     'fluent-color:code-block-24',
    'python':         'fluent-color:code-24',
    'react':          'fluent-color:question-circle-24',
    'security':       'fluent-color:lock-closed-24',
    'softwareeng':    'fluent-color:settings-24',
    'webdev':         'fluent-color:globe-24',
}

async def migrate():
    async with AsyncSession(async_engine) as session:
        result = await session.exec(select(Topic))
        topics = result.all()
        for topic in topics:
            new_icon = ICON_MAP.get(topic.id)
            if new_icon:
                print(f"  {topic.id}: {repr(topic.icon)} → {new_icon}")
                topic.icon = new_icon
                session.add(topic)
        await session.commit()
        print("Done.")

asyncio.run(migrate())
