-- 000__roles.sql
-- Роли для принимающей БД fansy-store.
-- Запускать первым, отдельно от структурных миграций.
-- Пароли проставляются администратором БД через ALTER ROLE.

DO $$
BEGIN
    IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'fansy_etl') THEN
        CREATE ROLE fansy_etl LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT;
        COMMENT ON ROLE fansy_etl IS
            'Роль команды Fansy для ETL: INSERT/UPDATE/SELECT в схему fansy_staging. DDL-прав нет.';
    END IF;

    IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'bj_reader') THEN
        CREATE ROLE bj_reader LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT;
        COMMENT ON ROLE bj_reader IS
            'Роль сервисов Bridge-and-Join-s (m2m-core, lk-gateway) для чтения схемы fansy.';
    END IF;

    IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'bj_migrator') THEN
        CREATE ROLE bj_migrator LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT;
        COMMENT ON ROLE bj_migrator IS
            'Роль с DDL-правами для миграций. Только эта роль может CREATE/ALTER/DROP.';
    END IF;
END
$$;
