"""Standalone migration runner for `docker CMD`.

Boot uses `python -m app.migrate` so migrations apply before uvicorn starts,
matching the Dockerfile CMD. This keeps deploys dependency-free (no separate
alembic / migrate container step required).
"""

from __future__ import annotations

import asyncio
import logging

from app.db import db
from app.logging import setup_logging

logger = logging.getLogger(__name__)


async def main() -> int:
    setup_logging()
    logger.info("running migrations")
    applied = await db.migrate()
    if applied:
        logger.info("migrations applied: %s", ", ".join(applied))
    else:
        logger.info("migrations up to date")
    await db.close()
    return 0


if __name__ == "__main__":
    raise SystemExit(asyncio.run(main()))