-- ============================================================
-- Миграция: Добавление статуса OCR обработки для документов
-- Дата: 2025-11-28
-- Описание: Добавляет колонки для отслеживания статуса OCR
--           обработки документов в заявках
-- ============================================================

-- 1. Добавляем колонки в clpr_claim_documents
ALTER TABLE clpr_claim_documents 
ADD COLUMN IF NOT EXISTS ocr_status VARCHAR(20) DEFAULT 'pending',
ADD COLUMN IF NOT EXISTS ocr_processed_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS ocr_error TEXT;

-- 2. Комментарии к колонкам
COMMENT ON COLUMN clpr_claim_documents.ocr_status IS 'Статус OCR обработки: pending, processing, ready, error';
COMMENT ON COLUMN clpr_claim_documents.ocr_processed_at IS 'Время завершения OCR обработки';
COMMENT ON COLUMN clpr_claim_documents.ocr_error IS 'Текст ошибки при неудачной OCR обработке';

-- 3. Индекс для быстрого поиска по статусу
CREATE INDEX IF NOT EXISTS idx_claim_docs_ocr_status 
ON clpr_claim_documents(claim_id, ocr_status);

-- 4. Индекс для поиска необработанных документов
CREATE INDEX IF NOT EXISTS idx_claim_docs_pending 
ON clpr_claim_documents(ocr_status) 
WHERE ocr_status = 'pending';

-- 5. Проставляем 'ready' для уже обработанных документов
--    (те, что уже есть в document_texts по file_hash)
UPDATE clpr_claim_documents cd
SET 
  ocr_status = 'ready',
  ocr_processed_at = NOW()
WHERE cd.file_hash IS NOT NULL
  AND EXISTS (
    SELECT 1 FROM document_texts dt 
    WHERE dt.file_hash = cd.file_hash
  )
  AND (cd.ocr_status IS NULL OR cd.ocr_status = 'pending');

-- 6. Статистика после миграции
DO $$
DECLARE
  total_docs INT;
  ready_docs INT;
  pending_docs INT;
BEGIN
  SELECT COUNT(*) INTO total_docs FROM clpr_claim_documents;
  SELECT COUNT(*) INTO ready_docs FROM clpr_claim_documents WHERE ocr_status = 'ready';
  SELECT COUNT(*) INTO pending_docs FROM clpr_claim_documents WHERE ocr_status = 'pending';
  
  RAISE NOTICE '=== OCR Status Migration Complete ===';
  RAISE NOTICE 'Total documents: %', total_docs;
  RAISE NOTICE 'Ready (already processed): %', ready_docs;
  RAISE NOTICE 'Pending (need OCR): %', pending_docs;
END $$;








