using System; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace BTCPayServer.Client.Models { public class InvoiceData : CreateInvoiceRequest { public string Id { get; set; } public string CheckoutLink { get; set; } [JsonConverter(typeof(StringEnumConverter))] public InvoiceStatus Status { get; set; } [JsonConverter(typeof(StringEnumConverter))] public InvoiceExceptionStatus AdditionalStatus { get; set; } [JsonConverter(typeof(NBitcoin.JsonConverters.DateTimeToUnixTimeConverter))] public DateTimeOffset MonitoringExpiration { get; set; } [JsonConverter(typeof(NBitcoin.JsonConverters.DateTimeToUnixTimeConverter))] public DateTimeOffset ExpirationTime { get; set; } [JsonConverter(typeof(NBitcoin.JsonConverters.DateTimeToUnixTimeConverter))] public DateTimeOffset CreatedTime { get; set; } } public enum InvoiceStatus { New, Processing, Expired, Invalid, Settled } }