namespace MissionService.Domain.AggregatesModel.TaskAggregate;

using MissionService.Domain.SeedWork;

/// <summary>
/// EN: Task status enumeration / VI: Trạng thái task
/// </summary>
public class TaskStatus : Enumeration
{
    /// <summary>EN: Task is pending start / VI: Task đang chờ bắt đầu</summary>
    public static readonly TaskStatus Pending = new(1, nameof(Pending));
    
    /// <summary>EN: Task is in progress / VI: Task đang thực hiện</summary>
    public static readonly TaskStatus InProgress = new(2, nameof(InProgress));
    
    /// <summary>EN: Task pending verification / VI: Task đang chờ xác thực</summary>
    public static readonly TaskStatus PendingVerification = new(3, nameof(PendingVerification));
    
    /// <summary>EN: Task completed / VI: Task đã hoàn thành</summary>
    public static readonly TaskStatus Completed = new(4, nameof(Completed));
    
    /// <summary>EN: Task rejected / VI: Task bị từ chối</summary>
    public static readonly TaskStatus Rejected = new(5, nameof(Rejected));
    
    /// <summary>EN: Task cancelled / VI: Task đã hủy</summary>
    public static readonly TaskStatus Cancelled = new(6, nameof(Cancelled));
    
    /// <summary>EN: Task expired / VI: Task đã hết hạn</summary>
    public static readonly TaskStatus Expired = new(7, nameof(Expired));
    
    public TaskStatus(int id, string name) : base(id, name) { }
}
