hay un problema con como el profesor asigna valores en uno de los metodos, no recuerdo como los asigna el en el DTO "DatosRespuestaMedico"
para solucionar ese problema tendrias que modificar el DTO y ponerlo de la siguiente manera:
public record DatosRespuestaMedico(@NotNull Long id,
String nombre,
String Email,
String telefono,
String especialidad,
String documento,
DatosDireccion direccion) { }
tiene que modificar ese Record y tambien modificar el metodo "retornaMedicoPorId" (este nombre puede cambiar, yo le suelo colocar otros nombres que para mi me resultan mas facil relacionar)
te dejo el codigo de MI metodo asi te guias
@GetMapping("/{id}")
public ResponseEntity<DatosRespuestaMedico>
retornaMedicoPorId(@PathVariable Long id,
UriComponentsBuilder uriComponentsBuilder)
{
Medico medico = medicoRepository.getReferenceById(id);
DatosRespuestaMedico datosRespuestaMedico =
new DatosRespuestaMedico(medico.getId(),
medico.getNombre(),
medico.getEmail(),
medico.getTelefono(),
medico.getEspecialidad().toString(),
medico.getDocumento(),
new DatosDireccion(medico.getDireccion().getCalle(),
medico.getDireccion().getDistrito(),
medico.getDireccion().getCiudad(),
medico.getDireccion().getNumero(),
medico.getDireccion().getComplemento()
)
);
return ResponseEntity.ok(datosRespuestaMedico);
}