import os
import sys
from pathlib import Path


def main() -> int:
    schema_path = Path(__file__).resolve().parent.parent / 'db' / 'schema.sql'
    if not schema_path.exists():
        print(f'missing schema file: {schema_path}', file=sys.stderr)
        return 1
    dsn = os.getenv('DATABASE_URL', '')
    if not dsn:
        print('DATABASE_URL is not set', file=sys.stderr)
        return 1
    try:
        import psycopg
    except Exception:
        print('psycopg is not installed; cannot apply schema directly', file=sys.stderr)
        return 1
    dsn = dsn.replace('postgresql+psycopg://', 'postgresql://')
    sql = schema_path.read_text()
    with psycopg.connect(dsn) as conn:
        with conn.cursor() as cur:
            cur.execute(sql)
        conn.commit()
    print(f'Applied schema from {schema_path}')
    return 0


if __name__ == '__main__':
    raise SystemExit(main())
