ba6d74fe35
- Add GetUserPackageStatusQueryValidator for user package status validation. - Create ArchiveMessageCommand and ArchiveMessageCommandHandler for archiving public messages. - Implement ArchiveMessageCommandValidator to validate message ID. - Introduce PublishMessageCommand and PublishMessageCommandHandler for publishing messages. - Add PublishMessageCommandValidator for validating publish message requests. - Implement GetPublicMessageQuery and GetPublicMessageQueryHandler for retrieving public messages. - Create GetPublicMessageQueryValidator for validating public message requests. - Add ApplyDiscountToOrderCommand and ApplyDiscountToOrderCommandHandler for applying discounts to orders. - Implement ApplyDiscountToOrderCommandValidator for validating discount application requests. - Create UpdateOrderStatusCommand and UpdateOrderStatusCommandHandler for changing order statuses. - Implement UpdateOrderStatusCommandValidator for validating order status updates. - Add CalculateOrderPVQuery and CalculateOrderPVQueryHandler for calculating order PV. - Implement CalculateOrderPVQueryValidator for validating PV calculation requests. - Create GetOrdersByDateRangeQuery and GetOrdersByDateRangeQueryHandler for retrieving orders by date range. - Implement GetOrdersByDateRangeQueryValidator for validating date range queries. - Add PublicMessage entity to represent public messages in the system. - Implement PublicMessageService for handling public message operations via gRPC.
94 lines
2.5 KiB
C#
94 lines
2.5 KiB
C#
using CMSMicroservice.Domain.Common;
|
|
using CMSMicroservice.Domain.Enums;
|
|
|
|
namespace CMSMicroservice.Domain.Entities;
|
|
|
|
/// <summary>
|
|
/// پیام عمومی برای نمایش در سیستم
|
|
/// </summary>
|
|
public class PublicMessage : BaseAuditableEntity
|
|
{
|
|
/// <summary>
|
|
/// عنوان پیام (حداکثر 200 کاراکتر)
|
|
/// </summary>
|
|
public string Title { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// محتوای پیام (حداکثر 2000 کاراکتر)
|
|
/// </summary>
|
|
public string Content { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// نوع پیام (Announcement, News, Warning, Promotion, SystemUpdate, Event)
|
|
/// </summary>
|
|
public MessageType Type { get; set; } = MessageType.Announcement;
|
|
|
|
/// <summary>
|
|
/// اولویت پیام (Low, Medium, High, Urgent)
|
|
/// </summary>
|
|
public MessagePriority Priority { get; set; } = MessagePriority.Medium;
|
|
|
|
/// <summary>
|
|
/// وضعیت فعال/غیرفعال
|
|
/// </summary>
|
|
public bool IsActive { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// آیا آرشیو شده است؟
|
|
/// </summary>
|
|
public bool IsArchived { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// تاریخ شروع نمایش پیام
|
|
/// </summary>
|
|
public DateTime? StartDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// تاریخ پایان نمایش پیام
|
|
/// </summary>
|
|
public DateTime? EndDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// تاریخ انتشار
|
|
/// </summary>
|
|
public DateTime? PublishedAt { get; set; }
|
|
|
|
/// <summary>
|
|
/// تاریخ آرشیو
|
|
/// </summary>
|
|
public DateTime? ArchivedAt { get; set; }
|
|
|
|
/// <summary>
|
|
/// شناسه Admin ایجادکننده
|
|
/// </summary>
|
|
public long? CreatedByUserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// تعداد بازدید (اختیاری - برای آمار)
|
|
/// </summary>
|
|
public int ViewCount { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// لینک اختیاری (برای اطلاعات بیشتر)
|
|
/// </summary>
|
|
public string? LinkUrl { get; set; }
|
|
|
|
/// <summary>
|
|
/// متن دکمه لینک (مثلاً "اطلاعات بیشتر")
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|