-- SQL скрипт для удаления дубликатов claim_id
-- Оставляет только запись с id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
-- Удаляет все остальные записи с таким же claim_id в payload

-- ⚠️ ВНИМАНИЕ: Перед выполнением DELETE обязательно выполните SELECT ниже,
-- чтобы увидеть, что будет удалено!

-- ============================================================================
-- ШАГ 1: ПРОВЕРКА - Какие записи будут удалены?
-- ============================================================================
-- Выполните этот запрос ПЕРВЫМ, чтобы увидеть, что будет удалено:

SELECT 
  id,
  payload->>'claim_id' AS claim_id,
  status_code,
  channel,
  created_at,
  updated_at,
  CASE 
    WHEN id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'::uuid THEN '✅ ОСТАВИТЬ'
    ELSE '❌ УДАЛИТЬ'
  END AS action,
  -- Показываем, есть ли send_to_form_approve
  CASE 
    WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES'
    ELSE 'NO'
  END AS has_send_to_form_approve,
  -- Размер payload
  pg_column_size(payload) AS payload_size_bytes
FROM clpr_claims
WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
ORDER BY updated_at DESC;

-- ============================================================================
-- ШАГ 2: УДАЛЕНИЕ - Удаляем все записи, кроме нужной
-- ============================================================================
-- ⚠️ ВНИМАНИЕ: Этот запрос УДАЛИТ данные! Выполняйте только после проверки!

-- Вариант 1: Удалить все записи с таким claim_id, кроме нужной
DELETE FROM clpr_claims
WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
  AND id != '0eb051ec-23a6-4e06-8b98-f02d20d35f68'::uuid
RETURNING 
  id,
  payload->>'claim_id' AS claim_id,
  status_code,
  created_at,
  updated_at;

-- ============================================================================
-- ШАГ 3: ПРОВЕРКА - Убедиться, что осталась только одна запись
-- ============================================================================
-- После удаления выполните этот запрос, чтобы проверить результат:

SELECT 
  id,
  payload->>'claim_id' AS claim_id,
  status_code,
  channel,
  created_at,
  updated_at,
  CASE 
    WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES'
    ELSE 'NO'
  END AS has_send_to_form_approve
FROM clpr_claims
WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
ORDER BY updated_at DESC;

-- Должна остаться только одна запись с id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'

-- ============================================================================
-- АЛЬТЕРНАТИВНЫЙ ВАРИАНТ: Удалить по ID (если знаете конкретные ID дубликатов)
-- ============================================================================
/*
-- Если вы знаете конкретные ID дубликатов, можно удалить их напрямую:
DELETE FROM clpr_claims
WHERE id IN (
  'uuid-дубликата-1',
  'uuid-дубликата-2',
  'uuid-дубликата-3'
)
RETURNING id, payload->>'claim_id' AS claim_id;
*/

