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; } }