get_user_id_and_balance¶
Сигнатура: get_user_id_and_balance("p_tg_user_id" bigint) RETURNS "jsonb"
Язык: sql
Security: DEFINER
Тело функции¶
declare
v_user_id uuid;
v_balance numeric;
begin
-- 1) ищем пользователя по tg_user_id
select id
into v_user_id
from public.users
where tg_user_id = p_tg_user_id
limit 1;
if v_user_id is null then
return jsonb_build_object(
'ok', false,
'reason', 'user_not_found',
'tg_user_id', p_tg_user_id
);
end if;
-- 2) читаем баланс кошелька (если кошелька нет — считаем 0)
select w.balance
into v_balance
from public.wallets w
where w.user_id = v_user_id;
return jsonb_build_object(
'ok', true,
'user_id', v_user_id,
'tg_user_id', p_tg_user_id,
'balance', coalesce(v_balance, 0)
);
end;