feat: Получение cf_2624 из MySQL и блокировка полей при подтверждении данных

- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM
- Обновлён метод get_draft() для получения cf_2624 напрямую из БД
- Реализована блокировка полей (readonly) при contact_data_confirmed = true
- Добавлен выбор банка для СБП выплат с динамической загрузкой из API
- Обновлена документация по работе с cf_2624 и MySQL
- Добавлен network_mode: host в docker-compose для доступа к MySQL
- Обновлены компоненты формы для поддержки блокировки полей
This commit is contained in:
AI Assistant
2025-12-04 12:22:23 +03:00
parent 64385c430d
commit 080e7ec105
69 changed files with 17034 additions and 1439 deletions

View File

@@ -3,10 +3,17 @@
--
-- Параметры:
-- $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() (время обновления)
--
-- После этого запись больше не будет показываться в списке черновиков
@@ -29,6 +36,14 @@ 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
@@ -37,5 +52,5 @@ RETURNING
c.payload->>'claim_id' AS claim_id,
c.status_code,
c.is_confirmed,
c.updated_at;
c.updated_at,
c.payload->'approved_form' IS NOT NULL AS has_approved_form;