namespace LiteCharms.Features.MidrandBooks.Payments.Models; public sealed class PayfastWebhookPayload { public string? MerchantId { get; set; } public string? MerchantKey { get; set; } public string? Signature { get; set; } public string? MerchantPaymentId { get; set; } public string? PaymentId { get; set; } public string? PaymentStatus { get; set; } public string? ItemName { get; set; } public string? ItemDescription { get; set; } public string? AmountGross { get; set; } public string? AmountFee { get; set; } public string? AmountNet { get; set; } public string? NameFirst { get; set; } public string? NameLast { get; set; } public string? EmailAddress { get; set; } public string? CustomStr1 { get; set; } public string? CustomInt1 { get; set; } public string? Token { get; set; } public IDictionary ToParamDictionary() => new Dictionary (StringComparer.Ordinal) { { "merchant_id", MerchantId }, { "merchant_key", MerchantKey }, { "m_payment_id", MerchantPaymentId }, { "pf_payment_id", PaymentId }, { "payment_status", PaymentStatus }, { "item_name", ItemName }, { "item_description", ItemDescription }, { "amount_gross", AmountGross }, { "amount_fee", AmountFee }, { "amount_net", AmountNet }, { "custom_str1", CustomStr1 }, { "custom_int1", CustomInt1 }, { "name_first", NameFirst }, { "name_last", NameLast }, { "email_address", EmailAddress }, { "token", Token } }; }