namespace CMSMicroservice.Application.CommissionCQ.Queries.GetAvailableWeeks;
public class GetAvailableWeeksResponseDto
{
/// هفته جاری
public required WeekInfoDto CurrentWeek { get; init; }
/// هفتههای محاسبه شده (از جدیدترین به قدیمیترین)
public required List CalculatedWeeks { get; init; }
/// هفتههای محاسبه نشده (از جدیدترین به قدیمیترین)
public required List PendingWeeks { get; init; }
/// هفتههای آینده قابل انتخاب
public required List FutureWeeks { get; init; }
}
public class WeekInfoDto
{
/// شناسه یکتای هفته
public required long WeekDefinitionId { get; init; }
/// شماره هفته (YYYY-Www)
public required string DisplayName { get; init; }
/// تاریخ شروع هفته
public required DateTime StartDate { get; init; }
/// تاریخ پایان هفته
public required DateTime EndDate { get; init; }
/// آیا محاسبه شده؟
public bool IsCalculated { get; init; }
/// تاریخ محاسبه (اگر محاسبه شده باشد)
public DateTime? CalculatedAt { get; init; }
/// وضعیت اجرای آخرین محاسبه
public string? LastExecutionStatus { get; init; }
/// مبلغ کل استخر کمیسیون (اگر محاسبه شده باشد)
public long? TotalPoolAmount { get; init; }
/// تعداد کاربران واجد شرایط
public int? EligibleUsersCount { get; init; }
/// نمایش فارسی (برای UI)
public required string DisplayText { get; init; }
}