using System.ComponentModel;

namespace Lada.Framework.Data.Enums
{
    /// <summary>
    /// Loại phiếu: Thưởng hoặc Phạt
    /// </summary>
    public enum TicketType
    {
        [Description("Thưởng")]
        Reward = 10,
        [Description("Phạt")]
        Penalty = 20
    }

    /// <summary>
    /// Nguồn gốc phiếu: Thủ công hoặc Tự động
    /// </summary>
    public enum TicketSource
    {
        [Description("Thủ công")]
        Manual = 10,
        [Description("Tự động")]
        Automated = 20
    }

    /// <summary>
    /// Trạng thái phiếu thưởng/phạt
    /// </summary>
    public enum TicketStatus
    {
        [Description("Nháp")]
        Draft = 10,
        [Description("Chờ duyệt")]
        PendingApproval = 20,
        [Description("Đã duyệt")]
        Approved = 30,
        [Description("Từ chối")]
        Rejected = 40,
        [Description("Đã hủy")]
        Canceled = 50
    }

    /// <summary>
    /// Trạng thái vi phạm nộp tiền trễ
    /// </summary>
    public enum ViolationStatus
    {
        [Description("Mới")]
        Active = 10,
        [Description("Đã tạo phiếu")]
        TicketCreated = 20,
        [Description("Đã gỡ")]
        Forgiven = 30
    }

    /// <summary>
    /// Chính sách reset số lần vi phạm
    /// </summary>
    public enum ResetPolicy
    {
        [Description("Hàng tháng")]
        Monthly = 10,
        [Description("Hàng quý")]
        Quarterly = 20,
        [Description("Trọn đời")]
        Lifetime = 30
    }

    /// <summary>
    /// Hình thức xử lý vi phạm
    /// </summary>
    public enum PenaltyActionType
    {
        [Description("Nhắc nhở")]
        Remind = 10,
        [Description("Phạt tiền")]
        Penalty = 20
    }
}
