-- =============================================================================
-- 01_paperless.sql
-- Legt paperless-User und -Datenbank in postgresql17 an.
--
-- NICHT als Volume eingebunden — manuell per stdin einspielen:
--   docker exec -i postgresql17 psql -U postgres < 01_paperless.sql
--
-- Nur ausführen wenn User/DB noch NICHT existieren (Phase 3a prüfen!).
-- Passwort hier muss mit PAPERLESS_DB_PASSWORD in .env übereinstimmen.
-- =============================================================================

-- User anlegen (idempotent)
DO $$
BEGIN
  IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'paperless') THEN
    CREATE ROLE paperless WITH LOGIN PASSWORD 'affentanz2345';
    RAISE NOTICE 'User paperless angelegt.';
  ELSE
    ALTER ROLE paperless WITH PASSWORD 'affentanz2345';
    RAISE NOTICE 'User paperless existiert bereits — Passwort aktualisiert.';
  END IF;
END
$$;

-- Datenbank anlegen (idempotent)
SELECT 'CREATE DATABASE paperless OWNER paperless'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'paperless')\gexec

-- Berechtigungen
GRANT ALL PRIVILEGES ON DATABASE paperless TO paperless;

-- Prüfausgabe
\echo ''
\echo '--- Datenbanken ---'
\l paperless
\echo '--- Rollen ---'
\du paperless
