mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 14:40:36 +01:00
113 lines
3.8 KiB
C#
113 lines
3.8 KiB
C#
using System;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Converters;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace BTCPayServer.Client.Models
|
|
{
|
|
public class WebhookPayoutEvent : StoreWebhookEvent
|
|
{
|
|
public WebhookPayoutEvent(string type, string storeId)
|
|
{
|
|
if (!type.StartsWith("payout", StringComparison.InvariantCultureIgnoreCase))
|
|
throw new ArgumentException("Invalid event type", nameof(type));
|
|
Type = type;
|
|
StoreId = storeId;
|
|
}
|
|
|
|
[JsonProperty(Order = 2)] public string PayoutId { get; set; }
|
|
[JsonProperty(Order = 3)] public string PullPaymentId { get; set; }
|
|
[JsonProperty(Order = 4)] [JsonConverter(typeof(StringEnumConverter))]public PayoutState PayoutState { get; set; }
|
|
}
|
|
public class WebhookPaymentRequestEvent : StoreWebhookEvent
|
|
{
|
|
public WebhookPaymentRequestEvent(string type, string storeId)
|
|
{
|
|
if (!type.StartsWith("paymentrequest", StringComparison.InvariantCultureIgnoreCase))
|
|
throw new ArgumentException("Invalid event type", nameof(type));
|
|
Type = type;
|
|
StoreId = storeId;
|
|
}
|
|
|
|
[JsonProperty(Order = 2)] public string PaymentRequestId { get; set; }
|
|
[JsonProperty(Order = 3)] [JsonConverter(typeof(StringEnumConverter))]public PaymentRequestData.PaymentRequestStatus Status { get; set; }
|
|
}
|
|
|
|
public abstract class StoreWebhookEvent : WebhookEvent
|
|
{
|
|
[JsonProperty(Order = 1)] public string StoreId { get; set; }
|
|
}
|
|
|
|
public class WebhookInvoiceEvent : StoreWebhookEvent
|
|
{
|
|
public WebhookInvoiceEvent()
|
|
{
|
|
}
|
|
|
|
public WebhookInvoiceEvent(string evtType, string storeId)
|
|
{
|
|
if (!evtType.StartsWith("invoice", StringComparison.InvariantCultureIgnoreCase))
|
|
throw new ArgumentException("Invalid event type", nameof(evtType));
|
|
Type = evtType;
|
|
StoreId = storeId;
|
|
}
|
|
|
|
[JsonProperty(Order = 2)] public string InvoiceId { get; set; }
|
|
[JsonProperty(Order = 3)] public JObject Metadata { get; set; }
|
|
}
|
|
|
|
public class WebhookInvoiceSettledEvent : WebhookInvoiceEvent
|
|
{
|
|
public WebhookInvoiceSettledEvent(string storeId) : base(WebhookEventType.InvoiceSettled, storeId)
|
|
{
|
|
}
|
|
|
|
public bool ManuallyMarked { get; set; }
|
|
public bool OverPaid { get; set; }
|
|
}
|
|
|
|
public class WebhookInvoiceInvalidEvent : WebhookInvoiceEvent
|
|
{
|
|
public WebhookInvoiceInvalidEvent(string storeId) : base(WebhookEventType.InvoiceInvalid, storeId)
|
|
{
|
|
}
|
|
|
|
public bool ManuallyMarked { get; set; }
|
|
}
|
|
|
|
public class WebhookInvoiceProcessingEvent : WebhookInvoiceEvent
|
|
{
|
|
public WebhookInvoiceProcessingEvent(string storeId) : base(WebhookEventType.InvoiceProcessing, storeId)
|
|
{
|
|
}
|
|
|
|
public bool OverPaid { get; set; }
|
|
}
|
|
|
|
public class WebhookInvoiceReceivedPaymentEvent : WebhookInvoiceEvent
|
|
{
|
|
public WebhookInvoiceReceivedPaymentEvent(string type, string storeId) : base(type, storeId)
|
|
{
|
|
}
|
|
|
|
public bool AfterExpiration { get; set; }
|
|
public string PaymentMethodId { get; set; }
|
|
public InvoicePaymentMethodDataModel.Payment Payment { get; set; }
|
|
}
|
|
|
|
public class WebhookInvoicePaymentSettledEvent : WebhookInvoiceReceivedPaymentEvent
|
|
{
|
|
public WebhookInvoicePaymentSettledEvent(string storeId) : base(WebhookEventType.InvoicePaymentSettled, storeId)
|
|
{
|
|
}
|
|
}
|
|
|
|
public class WebhookInvoiceExpiredEvent : WebhookInvoiceEvent
|
|
{
|
|
public WebhookInvoiceExpiredEvent(string storeId) : base(WebhookEventType.InvoiceExpired, storeId)
|
|
{
|
|
}
|
|
|
|
public bool PartiallyPaid { get; set; }
|
|
}
|
|
}
|