You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Este PR implementa o CRUD completo de vacinas, tanto no backend (API) quanto no frontend (APAE). Antes da mudança, as vacinas só podiam ser listadas e consultadas; agora é possível criar, editar e excluir registros de vacinas, com validações e tratamento de conflitos.
API — Criação, edição e exclusão de vacinas: novos endpoints POST /vaccines, PUT /vaccines/{id} e DELETE /vaccines/{id} com DTOs de entrada validados (CreateVaccineDTO, UpdateVaccineDTO), lógica de negócio no VaccineApplicationServiceImpl, mapeamento e métodos no repositório (existsByNameIgnoreCaseAndIdNot).
API — Exceções e tratamento de erros: novas exceções VaccineConflictException (nome duplicado) e VaccineInUseException (vacina vinculada a pacientes), tratadas no PatientExceptionHandler com status 409 Conflict e 404 Not Found para vacina inexistente.
Frontend — Páginas de criação e edição: novas rotas /vaccines/new e /vaccines/[id]/edit, com formulários e hooks (use-vaccine-create, use-vaccine-edit), schemas Zod de validação e campos com capitalização automática.
Frontend — Ações na listagem: botão "Adicionar" na listagem de vacinas, e ações de editar/excluir em cada item da lista, com modal de confirmação para exclusão e bloqueio (com tooltip) para vacinas associadas a pacientes.
Frontend — Integração com a API: funções fetchVaccineApi, createVaccineApi, updateVaccineApi e deleteVaccineApi, além das rotas proxy do Next.js (POST /api/vaccines e /api/vaccines/[id]).
Evidências
As evidências estão registradas e documentadas na issue .
Auto reviews are disabled on base/target branches other than the default branch.
Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 7ac44d05-9fbd-453e-b353-efbc70f55636
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
🔍 Trigger review
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
A edição não funciona porque botão “Editar” direciona para rota /vaccines/[id]/edit, mas essa página não foi criada. O formulário e chamada de atualização existem, porém nunca são exibidos. Criar página de edição que receba ID da vacina e renderize formulário correspondente.
A validação do nome no frontend também está incompleta: aceita nome com apenas um caractere, enquanto backend exige entre 2 e 100 caracteres. Ajustar validação de criação e edição para seguir mesma regra e exibir erro antes de enviar requisição.
Também existe problema no tratamento de erros pelas rotas do frontend. Quando backend retorna erro de nome duplicado, nome inválido, vacina inexistente ou vacina vinculada a paciente, frontend transforma resposta em erro genérico 500. Assim usuário não recebe motivo correto. Rotas devem preservar status e mensagem retornados pelo backend.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que mudou?
Este PR implementa o CRUD completo de vacinas, tanto no backend (API) quanto no frontend (APAE). Antes da mudança, as vacinas só podiam ser listadas e consultadas; agora é possível criar, editar e excluir registros de vacinas, com validações e tratamento de conflitos.
Issue Relacionadas
Closes #873
Mudanças Realizadas
POST /vaccines,PUT /vaccines/{id}eDELETE /vaccines/{id}com DTOs de entrada validados (CreateVaccineDTO,UpdateVaccineDTO), lógica de negócio noVaccineApplicationServiceImpl, mapeamento e métodos no repositório (existsByNameIgnoreCaseAndIdNot).VaccineConflictException(nome duplicado) eVaccineInUseException(vacina vinculada a pacientes), tratadas noPatientExceptionHandlercom status409 Conflicte404 Not Foundpara vacina inexistente./vaccines/newe/vaccines/[id]/edit, com formulários e hooks (use-vaccine-create,use-vaccine-edit), schemas Zod de validação e campos com capitalização automática.fetchVaccineApi,createVaccineApi,updateVaccineApiedeleteVaccineApi, além das rotas proxy do Next.js (POST /api/vaccinese/api/vaccines/[id]).Evidências
As evidências estão registradas e documentadas na issue .