using CMSMicroservice.Domain.Entities.Commission; using CMSMicroservice.Domain.Entities.History; using CMSMicroservice.Domain.Entities.Network; namespace CMSMicroservice.Domain.Entities; /// /// تعریف هفته‌ها برای نمایش در سیستم /// این جدول شامل اطلاعات کامل هر هفته شامل شماره نمایشی، شماره میلادی، شماره شمسی و بازه تاریخی است /// public class WeekDefinition : BaseAuditableEntity { /// /// شماره ترتیبی هفته (1، 2، 3، ...) /// برای مرتب‌سازی و محاسبات استفاده می‌شود /// public int WeekOrder { get; set; } /// /// نام نمایشی هفته (مثال: "هفته یکم"، "هفته دوم"، "هفته سوم") /// این متن برای نمایش به کاربر نهایی (ادمین و مشتری) استفاده می‌شود /// public string DisplayName { get; set; } = string.Empty; /// /// شماره هفته میلادی (مثال: "2025-W01", "2025-W02") /// فرمت ISO 8601 /// public string GregorianWeekNumber { get; set; } = string.Empty; /// /// شماره هفته شمسی (مثال: "1403-W01", "1403-W02") /// 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; } = true; // Navigation Properties public virtual ICollection? NetworkWeeklyBalances { get; set; } public virtual ICollection? WeeklyCommissionPools { get; set; } public virtual ICollection? UserCommissionPayouts { get; set; } public virtual ICollection? WorkerExecutionLogs { get; set; } public virtual ICollection? CommissionPayoutHistories { get; set; } }