-- ============================================================================
-- 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';

