Newer
Older
navi-1 / navi / push / _ddl.py
@Eugene Sukhodolskiy Eugene Sukhodolskiy 18 hours ago 673 bytes PWA: installable webclient, offline shell, web push
"""Push DDL — push_subscriptions table."""

_DDL = """
CREATE TABLE IF NOT EXISTS push_subscriptions (
    id           TEXT PRIMARY KEY,
    user_id      TEXT NOT NULL REFERENCES navi_users(id) ON DELETE CASCADE,
    endpoint     TEXT NOT NULL UNIQUE,
    p256dh       TEXT NOT NULL,
    auth         TEXT NOT NULL,
    user_agent   TEXT,
    created_at   TIMESTAMPTZ NOT NULL DEFAULT now(),
    last_push_at TIMESTAMPTZ
);

CREATE INDEX IF NOT EXISTS idx_push_subscriptions_user_id ON push_subscriptions(user_id);
"""


async def ensure_tables(pool) -> None:
    """Create the push tables if they don't exist (boot-time, after auth DDL)."""
    await pool.execute(_DDL)