// EN: Appointment status enumeration.
// VI: Enumeration trạng thái cuộc hẹn.

using BookingService.Domain.SeedWork;

namespace BookingService.Domain.AggregatesModel.AppointmentAggregate;

/// <summary>
/// EN: Appointment status enumeration - represents the lifecycle of an appointment.
/// VI: Enumeration trạng thái cuộc hẹn - đại diện cho vòng đời của cuộc hẹn.
/// </summary>
public class AppointmentStatus : Enumeration
{
    public static AppointmentStatus Pending = new(1, nameof(Pending));
    public static AppointmentStatus Confirmed = new(2, nameof(Confirmed));
    public static AppointmentStatus InProgress = new(3, nameof(InProgress));
    public static AppointmentStatus Completed = new(4, nameof(Completed));
    public static AppointmentStatus Cancelled = new(5, nameof(Cancelled));
    public static AppointmentStatus NoShow = new(6, nameof(NoShow));

    public AppointmentStatus(int id, string name) : base(id, name)
    {
    }
}
