Aunque sin ella el programa funciona considero que es una buena práctica de programación ponerla ya que esta acción resalta bastante el hecho de que nuestro programa va a tener una validación de poder agendar una consulta con un médico aleatorio. O sea, que solo este atributo puede ir nulo mientras que los otros dos no ('idPaciente' y 'fecha'). El record 'DatosReservaConsulta' quedaría así.
package med.voll.api.domain.consulta;
import jakarta.annotation.Nullable;
import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
public record DatosAgendarConsulta(
@Nullable Long idMedico,
@NotNull Long idPaciente,
@NotNull @Future LocalDateTime fecha
) {}
¿Qué opinan?