Da mesma forma que no endpoint de listagem de médicos só exibimos os médicos cujo atributo "ativo" é true (não foram deletados logicamente), não deveríamos fazer essa mesma validação para o endpoint de detalhes do médico?
Algo como:
@GetMapping("/{id}")
public ResponseEntity<MedicoDetalheDto> detalhar(@PathVariable Long id) {
Medico medico = this.repository.getReferenceById(id);
if (medico.isAtivo()) {
return ResponseEntity.ok(new MedicoDetalheDto(medico)); // 200 OK
}
return ResponseEntity.notFound().build(); // 404 Not Found
}
E outra dúvida relacionada a essa: como estou fazendo uma validação, isso poderia ser entendido como uma regra de negócio e consequemente fazer mais sentido colocar essa validação/regra em uma nova camada de Service/Use case?