using System; namespace GoodBooks.PAY.PAYDAL.DTO.Webhook { /// /// Maps to TPAYWEBHOOKEVENT — an append-only log table. /// No Version/Status/SortOrder: this table is a raw event log, not a master entity. /// PAYWEBHOOKEVENTID is an IDENTITY column — never set it from application code on insert. /// public class PayWebhookEventDTO { #region PrivateMembers private int paywebhookeventid; private int paygatewayid; private string idempotencykey; private string eventtype; private string? gatewaypayorderid; private string? gatewaytxnid; private string rawpayload; private byte signaturevalid; private byte isprocessed; private DateTime? processedon; private string? processingerror; private int createdbyid; private DateTime createdon; private int tenantid; #endregion #region PublicProperties /// IDENTITY PK — do NOT include in INSERT statements. public int PayWebhookEventId { get { return paywebhookeventid; } set { paywebhookeventid = value; } } public int PayGatewayId { get { return paygatewayid; } set { paygatewayid = value; } } public string IdempotencyKey { get { return idempotencykey; } set { idempotencykey = value; } } public string EventType { get { return eventtype; } set { eventtype = value; } } /// Gateway's own order/payment reference. Nullable — not all events carry one. public string? GatewayPayOrderId { get { return gatewaypayorderid; } set { gatewaypayorderid = value; } } /// Gateway transaction ID. Nullable — may not be present on initial events. public string? GatewayTxnId { get { return gatewaytxnid; } set { gatewaytxnid = value; } } /// Full JSON body received from the gateway. Stored verbatim. public string RawPayload { get { return rawpayload; } set { rawpayload = value; } } /// 0=Unverified, 1=Valid, 2=Invalid public byte SignatureValid { get { return signaturevalid; } set { signaturevalid = value; } } /// 0=No, 1=Yes, 2=Failed public byte IsProcessed { get { return isprocessed; } set { isprocessed = value; } } public DateTime? ProcessedOn { get { return processedon; } set { processedon = value; } } public string? ProcessingError { get { return processingerror; } set { processingerror = value; } } public int CreatedById { get { return createdbyid; } set { createdbyid = value; } } public DateTime CreatedOn { get { return createdon; } set { createdon = value; } } public int TenantId { get { return tenantid; } set { tenantid = value; } } #endregion } }