using ROLAC.API.Entities;

namespace ROLAC.API.Entities.Notifications;

/// <summary>An append-only audit row for every email or Line send (success or failure).</summary>
public class NotificationLog
{
    public long     Id               { get; set; }
    public string   Channel          { get; set; } = null!;  // "email" | "line"
    public string   TargetType       { get; set; } = null!;  // "email" | "user" | "group"
    public string   TargetExternalId { get; set; } = null!;  // email address OR Line id
    public string?  Subject          { get; set; }            // email only
    public int?     MemberId         { get; set; }
    public Member?  Member           { get; set; }
    public int?     MessagingGroupId { get; set; }
    public MessagingGroup? MessagingGroup { get; set; }
    public string   Body             { get; set; } = null!;
    public string   Status           { get; set; } = null!;  // "sent" | "failed"
    public string?  Error            { get; set; }
    public string   SentByUserId     { get; set; } = null!;
    public DateTime SentAt           { get; set; }
}
