from __future__ import annotations import pathlib import uuid from datetime import UTC, datetime import aiosqlite from server.settings import settings def new_id() -> str: return str(uuid.uuid4()) def utc_now_iso() -> str: return datetime.now(UTC).replace(microsecond=0).isoformat() async def get_db() -> aiosqlite.Connection: pathlib.Path(settings.db_path).parent.mkdir(parents=True, exist_ok=True) db = await aiosqlite.connect(settings.db_path) await db.execute("PRAGMA foreign_keys = ON;") return db async def ensure_schema(db: aiosqlite.Connection) -> None: from server.migrations import run_migrations await run_migrations(db)