-- ============================================================ -- Миграция: Добавление статуса 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 $$;