namespace Baya.Domain.Entities.Booking;

/// <summary>
/// The closed status vocabulary of a <see cref="BookingSession"/> — one visit within a booking. Persisted
/// as stable snake_case codes. Edges live in <see cref="BookingSessionTransitions"/>.
/// </summary>
public static class BookingSessionStatus
{
    /// <summary>Planned, no EVV check-in yet. The only state a cancellation refunds (un-started).</summary>
    public const string Scheduled = "scheduled";

    /// <summary>The nurse checked in (EVV open).</summary>
    public const string InProgress = "in_progress";

    /// <summary>The nurse checked out; the visit happened. Sets the session's payout-eligibility window.</summary>
    public const string Completed = "completed";

    /// <summary>No check-in by the no-show threshold (set by the no-show sweep). Terminal.</summary>
    public const string Missed = "missed";

    /// <summary>The session was cancelled before it started. Terminal.</summary>
    public const string Cancelled = "cancelled";
}
