using System; using System.Collections.Generic; using BTCPayServer.JsonConverters; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; namespace BTCPayServer.Client.Models { public enum PaymentRequestStatus { /// /// Not enough has been paid or settled /// Pending, /// /// Paid and fully settled /// Completed, /// /// Expired before full settlement /// Expired, /// /// Paid enough, awaiting full settlement /// Processing, } public class PaymentRequestBaseData { public string StoreId { get; set; } [JsonProperty(ItemConverterType = typeof(NumericStringJsonConverter))] public decimal Amount { get; set; } public string Currency { get; set; } [JsonConverter(typeof(NBitcoin.JsonConverters.DateTimeToUnixTimeConverter))] public DateTimeOffset? ExpiryDate { get; set; } public string Title { get; set; } public string Description { get; set; } public string Email { get; set; } public bool AllowCustomPaymentAmounts { get; set; } [JsonConverter(typeof(StringEnumConverter))] public PaymentRequestStatus Status { get; set; } [JsonConverter(typeof(NBitcoin.JsonConverters.DateTimeToUnixTimeConverter))] public DateTimeOffset CreatedTime { get; set; } public string Id { get; set; } public bool Archived { get; set; } public string FormId { get; set; } public JObject FormResponse { get; set; } [JsonExtensionData] public IDictionary AdditionalData { get; set; } } }