Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Implementar Data Cancelamento

Ao executar a tarefa de Cancelamento eu encontrei algumas divergências no código. Exemplo caso um paciente vai cadastrar uma consulta para um médico, na mesma data e hora que existiu consulta já cancelada, o sistema não permitia pois acusava que o medico já possuía uma consulta naquela data e horário. Porem issonão é uma verdade visto que a consulta esta como cancelada. Para ajustar eu acabei implementado validações para a data Cancelamento. Criei mais um campo no banco Data Cancelamento. Encima destas informações ajustei todo o codigo para ficar mais adequado a realidade.

Foi um ótimo exercício de adequação. Pude aplicar mais as validações em outros pontos do sistema.

Vale a dica

segue um trecho onde apliquei as devidas validações

public void cancelar( DadosCancelamentoConsulta dados) {
        if (!consultaRepository.existsById(dados.idConsulta())) {
            throw new ValidacaoException("A consulta informada não existe.");
        }
        
        var consultaNaoEstaCancelada = consultaRepository.consultaNaoCancelada(dados.idConsulta()) == null ? true : false;
        
        if(consultaRepository.existsById(dados.idConsulta()) && consultaNaoEstaCancelada == false) {
            throw new ValidacaoException("A consulta informada já esta cancelada.");
        }
        
        validadoresCancelamento.forEach(v -> v.validadorCancelar(dados));
        
        var consulta = consultaRepository.getReferenceById(dados.idConsulta());
        consulta.cancelar(dados.motivo(), dados.dataCancelamento());		
    }
1 resposta
solução!

Bom dia!

Sua resolução ficou excelente! Você fez um ótimo uso do aprendizado.

Parabéns pelo empenho nos estudos e continue praticando.

Para que mais pessoas consigam visualizar a sua solução proposta, é recomendado que você marque este tópico como solucionado. Assim pode ajudar ainda mais pessoas :)

Bons estudos!