import psycopg
from psycopg.rows import dict_row

from app.settings import get_settings


def connect() -> psycopg.Connection:
    return psycopg.connect(get_settings().database_url, row_factory=dict_row)


def center_by_slug(conn: psycopg.Connection, slug: str) -> dict:
    row = conn.execute("SELECT * FROM centers WHERE slug = %s", (slug,)).fetchone()
    if not row:
        raise SystemExit(f"No center with slug {slug!r}. Create it with: python -m cli.manage create-center")
    return row
