42 lines
1.3 KiB
MySQL
42 lines
1.3 KiB
MySQL
|
|
-- SQL скрипт для n8n: Отметка формы как подтвержденной после получения данных из Redis канала
|
||
|
|
-- Используется после обработки события из канала clientright:webform:approve
|
||
|
|
--
|
||
|
|
-- Параметры:
|
||
|
|
-- $1 = claim_id (UUID или текст)
|
||
|
|
--
|
||
|
|
-- Обновляет:
|
||
|
|
-- - status_code = 'approved' (отмечает форму как подтвержденную)
|
||
|
|
-- - is_confirmed = true (дополнительный флаг подтверждения)
|
||
|
|
-- - 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,
|
||
|
|
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;
|
||
|
|
|