namespace CashLineERP.Domain.Tax;

public sealed class EtaDocumentEvent
{
    public long Id { get; private set; }

    public long AccountsReceivableInvoiceId { get; private set; }

    public long? EtaSubmissionLogId { get; private set; }

    public string EventType { get; private set; } = string.Empty;

    public string EventStatus { get; private set; } = string.Empty;

    public DateTime EventTimestampUtc { get; private set; }

    public long? ActorUserId { get; private set; }

    public string? PayloadText { get; private set; }

    public string? ResponseText { get; private set; }

    public string? NotesText { get; private set; }

    public EtaDocumentEvent(
        long accountsReceivableInvoiceId,
        long? etaSubmissionLogId,
        string eventType,
        string eventStatus,
        DateTime eventTimestampUtc,
        long? actorUserId,
        string? payloadText,
        string? responseText,
        string? notesText)
    {
        AccountsReceivableInvoiceId = accountsReceivableInvoiceId;
        EtaSubmissionLogId = etaSubmissionLogId;
        EventType = eventType;
        EventStatus = eventStatus;
        EventTimestampUtc = eventTimestampUtc;
        ActorUserId = actorUserId;
        PayloadText = payloadText;
        ResponseText = responseText;
        NotesText = notesText;
    }

    private EtaDocumentEvent()
    {
    }
}
