No dto de dadosAgendamentoConsulta temos a propriedade de dataConsulta que esta declarada da seguinte forma
@NotNull @Future LocalDateTime dataConsulta,
Para validar se contém consulta no mesmo horario para aquele médico em específico , o sistema apenas pega a data de consulta enviada e coloca como clausula where no banco.
Sendo assim se eu agendo uma consulta com a seguinte data no payload '2023-11-08T15:35:50' e logo após tento agendar uma outra consulta com a seguinte data '2023-11-08T15:45:50' (Neste exemplo eu mudei o pacienteId e mantive apenas o medico id) a validação esta deixando marcar.
Olhando no forum vi que teve uma solução proposta a um aluno de colocar o @JsonFormat fixando os minutos e segundos em zero, porem ao colocar esta anotação a aplicação para rodar pois retorna um erro que não consegue serializar/deserializar a string para LocalDateTime
Foi proposto na resposta que vi no forum colocar a anotação @JsonFormat(pattern = "yyyy-MM-dd HH:00:00") na propriedade de dataConsulta do dto de DadosAgendamento
Adicionei para testar e agora ao tentar agendar tenho o retorno do seguinte erro.
//se eu tento mandar no formato que estava sendo utilizado na aula
JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String "2023-11-18T15:35:50": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2023-11-18T15:35:50' could not be parsed at index 10
//se eu tento mandar no formato semelhante ao esperado pelo jsonFormat
JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String "2023-11-18 15:35:50": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2023-11-18 15:35:50' could not be parsed at index 14
Como fazer para esta anotação funcionar? Tem de ser feito alguma configuração ?