-- ============================================================================ -- SQL для исправления черновика bddb6815-8e17-4d54-a721-5e94382942c7 -- ============================================================================ -- Проблема: У черновика нет documents_required и неправильный статус -- Решение: Добавляем documents_required и устанавливаем правильный статус -- ============================================================================ UPDATE clpr_claims SET status_code = CASE -- Если документы уже загружены - ставим draft_docs_progress или draft_docs_complete WHEN jsonb_array_length(COALESCE(payload->'documents_uploaded', '[]'::jsonb)) > 0 THEN CASE WHEN jsonb_array_length(COALESCE(payload->'documents_uploaded', '[]'::jsonb)) >= 4 THEN 'draft_docs_complete' ELSE 'draft_docs_progress' END -- Если документов нет - ставим draft_new ELSE 'draft_new' END, -- Добавляем documents_required в payload payload = jsonb_set( COALESCE(payload, '{}'::jsonb), '{documents_required}', '[ { "id": "contract", "name": "Договор или заказ", "hints": "Фото или скан подписанного договора или квитанции", "accept": ["pdf", "jpg", "png"], "priority": 1, "required": true }, { "id": "payment", "name": "Чек или подтверждение оплаты", "hints": "Копия кассового чека, онлайн-платежа или квитанции", "accept": ["pdf", "jpg", "png"], "priority": 1, "required": true }, { "id": "correspondence", "name": "Переписка", "hints": "Скриншоты сообщений, писем, жалоб", "accept": ["pdf", "jpg", "png"], "priority": 2, "required": false }, { "id": "evidence_photo", "name": "Фото доказательства", "hints": "Фото дефектов товара, видео процесса ремонта или передачи", "accept": ["jpg", "png", "pdf"], "priority": 2, "required": false } ]'::jsonb, true ), updated_at = now() WHERE id::text = 'bddb6815-8e17-4d54-a721-5e94382942c7' OR payload->>'claim_id' = 'bddb6815-8e17-4d54-a721-5e94382942c7'; -- Проверяем результат SELECT id::text, status_code, payload->>'claim_id' as claim_id, jsonb_array_length(COALESCE(payload->'documents_required', '[]'::jsonb)) as docs_required_count, jsonb_array_length(COALESCE(payload->'documents_uploaded', '[]'::jsonb)) as docs_uploaded_count, payload->'documents_required'->0->>'name' as first_doc_name FROM clpr_claims WHERE id::text = 'bddb6815-8e17-4d54-a721-5e94382942c7' OR payload->>'claim_id' = 'bddb6815-8e17-4d54-a721-5e94382942c7';