using CMSMicroservice.Domain.Common; using CMSMicroservice.Domain.Enums; namespace CMSMicroservice.Domain.Entities; /// /// پیام عمومی برای نمایش در سیستم /// public class PublicMessage : BaseAuditableEntity { /// /// عنوان پیام (حداکثر 200 کاراکتر) /// public string Title { get; set; } = string.Empty; /// /// محتوای پیام (حداکثر 2000 کاراکتر) /// public string Content { get; set; } = string.Empty; /// /// نوع پیام (Announcement, News, Warning, Promotion, SystemUpdate, Event) /// public MessageType Type { get; set; } = MessageType.Announcement; /// /// اولویت پیام (Low, Medium, High, Urgent) /// public MessagePriority Priority { get; set; } = MessagePriority.Medium; /// /// وضعیت فعال/غیرفعال /// public bool IsActive { get; set; } = false; /// /// آیا آرشیو شده است؟ /// public bool IsArchived { get; set; } = false; /// /// تاریخ شروع نمایش پیام /// public DateTime? StartDate { get; set; } /// /// تاریخ پایان نمایش پیام /// public DateTime? EndDate { get; set; } /// /// تاریخ انتشار /// public DateTime? PublishedAt { get; set; } /// /// تاریخ آرشیو /// public DateTime? ArchivedAt { get; set; } /// /// شناسه Admin ایجادکننده /// public long? CreatedByUserId { get; set; } /// /// تعداد بازدید (اختیاری - برای آمار) /// public int ViewCount { get; set; } = 0; /// /// لینک اختیاری (برای اطلاعات بیشتر) /// public string? LinkUrl { get; set; } /// /// متن دکمه لینک (مثلاً "اطلاعات بیشتر") /// public string? LinkText { get; set; } // Backward compatibility properties (map to StartDate/EndDate) public DateTime? StartsAt { get => StartDate; set => StartDate = value; } public DateTime? ExpiresAt { get => EndDate; set => EndDate = value; } }