Kit.Db/projects/pg/kit_auth_pg/auth/scripts/2026-07-08_user-select-by-i...

37 lines
1.3 KiB
PL/PgSQL

-- Delta-миграция (auth-БД): функция auth.user_select_by_ids — batch-выборка публичных профилей
-- пользователей по списку id. Нужна для межсервисного обогащения списков в потребителях
-- (Kit.Auth.Client.JoinUserProfiles → POST auth/user/by-ids).
--
-- Идемпотентна: CREATE OR REPLACE. Безопасно запускать повторно; подходит для прода без
-- пересоздания БД. Соответствует init/schemas/auth/functions/user/user_select_by_ids.psql.
BEGIN;
CREATE OR REPLACE FUNCTION auth.user_select_by_ids(_ids integer[] DEFAULT NULL::integer[])
RETURNS SETOF refcursor
LANGUAGE plpgsql
AS $$
DECLARE
_rc refcursor;
BEGIN
OPEN _rc FOR
SELECT
main.id,
main.outer_user_id,
main.login,
main.first_name,
main.last_name,
main.middle_name,
main.email,
main.phone,
main.sex,
main.date_created,
main.is_blocked
FROM auth.user main
WHERE main.is_deleted = false
AND main.id = ANY(_ids);
RETURN NEXT _rc;
END;
$$;
COMMIT;