Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Sugerencia] El atributo 'idMedico' del Record 'DatosReservaConsulta' debería tener la anotación @Nullable

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?

2 respuestas
solución!

Hola Yahadad,

¡Gracias por compartir tu sugerencia! Me parece una excelente idea anotar el atributo idMedico con @Nullable. Esto no solo mejora la claridad del código al indicar que el campo puede ser nulo, sino que también ayuda a otros desarrolladores a entender rápidamente que el sistema tiene la capacidad de asignar automáticamente un médico si no se proporciona uno.

En el contexto de la API que estás desarrollando, donde se permite que el idMedico sea opcional para que el sistema pueda asignar un médico aleatorio, usar @Nullable es una buena práctica. Esto puede prevenir errores y mejorar la legibilidad del código, haciendo explícito que este es el único campo que puede ser nulo, mientras que idPaciente y fecha son obligatorios.

Aquí tienes un ejemplo de cómo quedaría tu código con la anotación:

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
) {}

Espero que esta sugerencia sea útil para ti y para otros que trabajen en el proyecto. ¡Sigue adelante con tu buen trabajo!

Espero haber ayudado y buenos estudios!

Vale sí, gracias por tomar en cuenta mi sugerencia, ingeniero Eric.