Appointment.java
package com.chronus.domain.entity;
import com.chronus.domain.valueobject.AppointmentDateTime;
import com.chronus.domain.valueobject.AppointmentId;
import java.time.LocalDateTime;
// entidad de dominio que representa una cita de atención médica
public class Appointment {
private final AppointmentId appointmentId;
private AppointmentDateTime dateTime;
// constructor para crear una cita con la fecha y hora requeridas
public Appointment(String appointmentId, LocalDateTime dateTime) {
this.appointmentId = new AppointmentId(appointmentId);
this.dateTime = new AppointmentDateTime(dateTime);
}
// metodo con semantica de negocio para actualizar la fecha y hora de la cita
public void updateDateTime(LocalDateTime dateTime) {
this.dateTime = new AppointmentDateTime(dateTime);
}
// getters para obtener los detalles de la cita
public String getAppointmentId() {
return appointmentId.value();
}
public AppointmentDateTime getDateTime() {
return dateTime;
}
}