-- SQL скрипт для n8n: Отметка формы как подтвержденной после получения данных из Redis канала -- Используется после обработки события из канала clientright:webform:approve -- -- Параметры: -- $1 = claim_id (UUID или текст) -- $2 = approved_form (JSONB - полные данные формы после апрува) -- $3 = sms_code (текст - код подтверждения) -- $4 = phone (текст - телефон) -- -- Обновляет: -- - status_code = 'approved' (отмечает форму как подтвержденную) -- - is_confirmed = true (дополнительный флаг подтверждения) -- - payload.approved_form = полные данные формы -- - payload.sms_verified = true -- - payload.sms_code = код подтверждения -- - payload.approved_at = время подтверждения -- - updated_at = now() (время обновления) -- -- После этого запись больше не будет показываться в списке черновиков WITH claim_lookup AS ( SELECT c.id, c.payload, c.status_code, c.is_confirmed FROM clpr_claims c WHERE c.id::text = $1::text OR c.payload->>'claim_id' = $1::text ORDER BY CASE WHEN c.id::text = $1::text THEN 1 ELSE 2 END, c.updated_at DESC LIMIT 1 ) UPDATE clpr_claims c SET status_code = 'approved', is_confirmed = true, payload = c.payload || jsonb_build_object( 'approved_form', $2::jsonb, 'sms_verified', true, 'sms_code', $3::text, 'approved_phone', $4::text, 'approved_at', now()::text ), updated_at = now() FROM claim_lookup cl WHERE c.id = cl.id RETURNING c.id, c.payload->>'claim_id' AS claim_id, c.status_code, c.is_confirmed, c.updated_at, c.payload->'approved_form' IS NOT NULL AS has_approved_form;