Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
3.6 KiB
primary-files-ui Specification
Purpose
TBD - created by archiving change demo-prototype. Update Purpose after archive.
Requirements
Requirement: Загрузка файлов ЮЛ в контексте версии
Панель «Файлы ЮЛ» [39]/[40], открытая из строки ЮЛ карточки версии, SHALL загружать выбранные файлы одним запросом
POST /legal-entities/{id}/files?consolidation_version_id={version_id} (multipart, поле files повторяется), без
других полей формы. Тип и период документа не спрашиваются. После ответа панель SHALL показать итог: принятые файлы
(accepted[].name) и отклонённые с причиной (rejected[].name + message). Ответ 422 с телом UploadResult SHALL
трактоваться как «ни один файл не принят» с тем же показом rejected[]; ответ 422 с detail (ENTITY_NOT_IN_PERIMETER)
и прочие ошибки — показом message.
Scenario: Часть файлов отклонена
- WHEN аналитик загружает ОСВ-файл и файл, уже загруженный ранее у этого ЮЛ
- THEN первый показан принятым, второй — отклонённым с текстом причины
DUPLICATE_FILEот сервера
Scenario: Все файлы отклонены
- WHEN сервер отвечает 422 с телом
UploadResult - THEN панель показывает каждый отклонённый файл с причиной, а не общую ошибку
Requirement: Список файлов и документов ЮЛ
Панель SHALL показывать файлы ЮЛ из GET /legal-entities/{id}/files (новые первыми): имя, статус файла по-русски
(«Обработка» для UPLOADED/PROCESSING, «Ошибка» с причиной из job для ERROR) и вложенные documents[] — тип
(«ОСВ <счёт>», «Бух. баланс», «ОФР», «Расшифровка», «Прочее»), период («2024 К1», «2024 · 9 мес.», «период не
определён»), статус документа («Требуется проверка», «Загружен» для CONFIRMED, «Ошибка»). Документы OSV, BALANCE,
INCOME SHALL быть ссылками на /documents/:document_id.
Scenario: PDF с двумя формами
- WHEN файл
aep_6.pdfраспознан - THEN под файлом видны два документа — «Бух. баланс» и «ОФР» со статусом «Требуется проверка», каждый открывает экран проверки
Requirement: Опрос до окончания распознавания
Пока панель открыта и среди файлов есть UPLOADED или PROCESSING, панель SHALL перечитывать список раз в 5 секунд и
SHALL прекратить опрос, когда таких файлов нет или панель закрыта. При закрытии панели карточка версии SHALL
перечитываться (обновить ячейки чек-листа).
Scenario: Опрос останавливается
- WHEN все файлы ЮЛ перешли в
PROCESSEDилиERROR - THEN запросы списка файлов прекращаются