namespace SolutionErp.Domain.Office;

// Phase 10.2 G-O2 — Phòng họp BookingCalendar enum.
// Reference NamGroup TblBookingResource TrangThai 4-state (NamGroup S50)
// — SOL adapt 3-state, drop "Rejected" (use Cancelled instead).

public enum MeetingBookingStatus
{
    Confirmed = 1,    // Đã xác nhận (default sau Create)
    Cancelled = 2,    // Đã huỷ
    Completed = 3,    // Đã kết thúc (auto-set khi EndAt < Now via job/manual)
}

// Phase 10.3 G-O3 (Mig 38 — S37 2026-05-28) — Trạng thái Đề xuất (Proposal).
// 5-state mirror PE/Contract pattern (Nháp / Đã gửi duyệt / Trả lại / Từ chối / Đã duyệt).
// Workflow V2 dynamic theo ApprovalWorkflow.ApplicableType=ProposalGeneral=4.
public enum ProposalStatus
{
    Nhap = 1,           // Drafter đang soạn, chưa gửi duyệt
    DaGuiDuyet = 2,     // Trong workflow approve flow (CurrentApprovalLevelOrder)
    TraLai = 3,         // Approver trả về Drafter sửa → resubmit lại từ Cấp 1
    TuChoi = 4,         // Terminal — không thể edit/resubmit
    DaDuyet = 5,        // Terminal — workflow complete tất cả Cấp
}

// Phase 10.3 G-O4 (Mig 39 — S38 2026-05-28) — 5-state generic workflow status share.
// Dùng chung cho LeaveRequest + OtRequest + TravelRequest + VehicleBooking + ItTicket.
// Skeleton Phase 1: ApproveV2 wire DEFER Phase 11 polish.
public enum WorkflowAppStatus
{
    Nhap = 1,
    DaGuiDuyet = 2,
    TraLai = 3,
    TuChoi = 4,
    DaDuyet = 5,
}

// G-O6 IT Ticket category + priority enum.
public enum ItTicketCategory
{
    Hardware = 1,
    Software = 2,
    Network = 3,
    Account = 4,
    Other = 99,
}

public enum ItTicketPriority
{
    Low = 1,
    Medium = 2,
    High = 3,
    Urgent = 4,
}

public enum ItTicketStatus
{
    Open = 1,
    InProgress = 2,
    Resolved = 3,
    Closed = 4,
    Reopened = 5,
}
