feat: imagens por item de Validação Técnica (API, tela, DOCX e PDF) #82

Merged
jhony75 merged 2 commits from feature/validation-item-images into develop 2026-10-14 15:33:01 -03:00
Owner

O que é

Prints de exame por item da Validação Técnica, pedido do fluxo de validação de cliente (qa-project/runner): cada item aceita várias imagens com legenda opcional, que aparecem na tela de edição e embutidas logo abaixo do item no DOCX e no PDF.

Contrato (detalhes em docs/API.md)

  • POST /api/technical-validation-items/{id}/images — JSON base64 (filename, content_type, data_base64, caption opcional), uma imagem por chamada.
  • GET /api/technical-validation-items/{id}/images — lista; os itens de GET /api/technical-validations/{id} também trazem images.
  • PUT /api/images/{id} — editar/limpar legenda. Bytes e remoção reaproveitam GET/DELETE /api/images/{id}.
  • Limites: 10 MiB por imagem (413), PNG/JPEG/GIF/WebP (400), 20 por item (409 na 21ª; teto novo, só para este caso).
  • Apagar o item ou a validação apaga as imagens (cascade).

Detalhes

  • Reaproveita a tabela images (technical_validation_item_id + caption), a validação de assinatura e o Garage/BLOB existentes. Migration 214c24985940 (round-trip, alembic check e restore drill ok).
  • DOCX: WebP é convertido para PNG (python-docx não lê); imagem ilegível vira aviso no lugar dela em vez de derrubar o export (idem no PDF).
  • Tela: componente ItemImages (miniatura, legenda salva ao sair do campo, remover com confirmação, colar/arrastar para enviar), conferido no navegador.
  • Bruno, OpenAPI e tipos do frontend regenerados; BACKLOG.md atualizado.

Atenção ao merge

  • A migration parte de 995241f5ea8d (head atual do develop). A PR #80 (metrics na run) também adiciona uma migration em cima dele: quem mergear depois precisa re-apontar o down_revision e os heads do CI/smoke test (aviso e eu faço o ajuste).

Verificação

  • Backend: 287 passed (13 testes novos: contrato, limites, cascade, exports DOCX/PDF, imagem ilegível).
  • Frontend: tsc limpo, lint sem erros, 168 testes (5 novos), build ok.

🤖 Generated with Claude Code

## O que é Prints de exame por item da Validação Técnica, pedido do fluxo de validação de cliente (qa-project/runner): cada item aceita várias imagens com legenda opcional, que aparecem na tela de edição e embutidas logo abaixo do item no DOCX e no PDF. ## Contrato (detalhes em `docs/API.md`) - `POST /api/technical-validation-items/{id}/images` — JSON base64 (`filename`, `content_type`, `data_base64`, `caption` opcional), uma imagem por chamada. - `GET /api/technical-validation-items/{id}/images` — lista; os itens de `GET /api/technical-validations/{id}` também trazem `images`. - `PUT /api/images/{id}` — editar/limpar legenda. Bytes e remoção reaproveitam `GET`/`DELETE /api/images/{id}`. - Limites: 10 MiB por imagem (`413`), PNG/JPEG/GIF/WebP (`400`), **20 por item** (`409` na 21ª; teto novo, só para este caso). - Apagar o item ou a validação apaga as imagens (cascade). ## Detalhes - Reaproveita a tabela `images` (`technical_validation_item_id` + `caption`), a validação de assinatura e o Garage/BLOB existentes. Migration `214c24985940` (round-trip, `alembic check` e restore drill ok). - DOCX: WebP é convertido para PNG (python-docx não lê); imagem ilegível vira aviso no lugar dela em vez de derrubar o export (idem no PDF). - Tela: componente `ItemImages` (miniatura, legenda salva ao sair do campo, remover com confirmação, colar/arrastar para enviar), conferido no navegador. - Bruno, OpenAPI e tipos do frontend regenerados; `BACKLOG.md` atualizado. ## Atenção ao merge - A migration parte de `995241f5ea8d` (head atual do develop). A PR #80 (metrics na run) também adiciona uma migration em cima dele: quem mergear depois precisa re-apontar o `down_revision` e os heads do CI/smoke test (aviso e eu faço o ajuste). ## Verificação - Backend: 287 passed (13 testes novos: contrato, limites, cascade, exports DOCX/PDF, imagem ilegível). - Frontend: `tsc` limpo, lint sem erros, 168 testes (5 novos), build ok. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: imagens por item de Validacao Tecnica (API, tela, DOCX e PDF)
Some checks failed
EEG QA CI / Detectar o que mudou (pull_request) Successful in 7s
EEG QA CI / Frontend (pull_request) Failing after 53s
EEG QA CI / Backend (pull_request) Successful in 1m47s
EEG QA CI / Build e publicação de imagens (pull_request) Has been skipped
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
1042731913
Itens aceitam varias imagens com legenda opcional (POST/GET
/api/technical-validation-items/{id}/images, PUT /api/images/{id}); aparecem
na tela de edicao e embutidas abaixo do item nos exports. Limites: 10 MiB,
PNG/JPEG/GIF/WebP, 20 por item. Reaproveita a tabela images (migration
214c24985940).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge remote-tracking branch 'origin/develop' into feature/validation-item-images (migration re-apontada pra 0b41b961aa5b)
All checks were successful
EEG QA CI / Detectar o que mudou (pull_request) Successful in 6s
EEG QA CI / Backend (pull_request) Successful in 1m51s
EEG QA CI / Frontend (pull_request) Successful in 4m14s
EEG QA CI / Build e publicação de imagens (pull_request) Successful in 3m16s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
cc48b1fa6d
jhony75 merged commit d2ad6a3ba7 into develop 2026-10-14 15:33:01 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!82
No description provided.