namespace CMSMicroservice.Application.CommissionCQ.Queries.GetWeekDefinitions;

/// <summary>
/// DTO برای پاسخ لیست هفته‌ها
/// </summary>
public class GetWeekDefinitionsResponseDto
{
    //لیست هفته‌ها
    public List<WeekDefinitionItemDto> Data { get; set; } = new();
    
    //تعداد کل
    public int TotalCount { get; set; }
}

/// <summary>
/// آیتم هفته برای dropdown
/// </summary>
public class WeekDefinitionItemDto
{
    //شناسه هفته
    public long Id { get; set; }
    
    //شماره ترتیب هفته (1, 2, 3, ...)
    public int WeekOrder { get; set; }
    
    //نام نمایشی هفته (هفته یکم، هفته دوم، ...)
    public string DisplayName { get; set; } = string.Empty;
    
    //شماره هفته میلادی (2025-W46)
    public string GregorianWeekNumber { get; set; } = string.Empty;
    
    //شماره هفته شمسی (1404-W35)
    public string PersianWeekNumber { get; set; } = string.Empty;
    
    //تاریخ شروع هفته
    public DateTime StartDate { get; set; }
    
    //تاریخ پایان هفته
    public DateTime EndDate { get; set; }
    
    //سال میلادی
    public int GregorianYear { get; set; }
    
    //سال شمسی
    public int PersianYear { get; set; }
    
    //فعال بودن
    public bool IsActive { get; set; }
    
    //آیا هفته جاری است؟
    public bool IsCurrentWeek { get; set; }
}
