using System; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; namespace Sozsoft.Notifications.Entities; public class Notification : FullAuditedEntity, IMultiTenant { public Guid? TenantId { get; set; } public Guid NotificationRuleId { get; set; } public required string NotificationChannel { get; set; } public required Guid NotificationTypeId { get; set; } public virtual NotificationType NotificationType { get; set; } /// /// Metni hangi sablondan geldigi; elle gonderimde secilirse yazilir, kural motorundan gecen /// bildirimlerde bostur. Navigasyon yoktur: sablon uygulamanin entity'sidir /// (Adm_T_NotificationTemplate), bildirim modulu ona referans veremez. /// public Guid? NotificationTemplateId { get; set; } // Bildirim tipine göre bildirimi alacak olan hedef bilgisini içerir public required string Identifier { get; set; } //UserId, Email, PhoneNumber.. public Guid? UserId { get; set; } public required string Message { get; set; } /// /// Mail kanalinin konu satiri. Bos ise NotificationWorker konuyu bildirim tipinin /// adindan uretir; kural motorundan gecen bildirimlerde bos kalir, manuel gonderimde /// ekrandan ya da sablondan gelir. /// public string? Subject { get; set; } public bool IsSent { get; set; } public bool IsRead { get; set; } public DateTime? ReadTime { get; set; } public virtual NotificationRule NotificationRule { get; set; } }