btcpayserver/BTCPayServer/Models/WalletViewModels/PullPaymentsModel.cs
d11n a962e60de9
More Translations (#6318)
* Store selector

* Footer

* Notifications

* Checkout Appearance

* Users list

* Forms

* Emails

* Pay Button

* Edit Dictionary

* Remove newlines, fix typos

* Forms

* Pull payments and payouts

* Various pages

* Use local docs link

* Fix

* Even more translations

* Fixes #6325

* Account pages

* Notifications

* Placeholders

* Various pages and components

* Add more
2024-10-25 22:48:53 +09:00

100 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using BTCPayServer.Client.Models;
using BTCPayServer.Data;
using BTCPayServer.Payments;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace BTCPayServer.Models.WalletViewModels
{
public class PullPaymentsModel : BasePagingViewModel
{
public class PullPaymentModel
{
public class ProgressModel
{
public int CompletedPercent { get; set; }
public int AwaitingPercent { get; set; }
public string CompletedFormatted { get; set; }
public string AwaitingFormatted { get; set; }
public string LimitFormatted { get; set; }
public string EndIn { get; set; }
public decimal Awaiting { get; set; }
public decimal Completed { get; set; }
public decimal Limit { get; set; }
}
public string Id { get; set; }
public string Name { get; set; }
public string ProgressText { get; set; }
public ProgressModel Progress { get; set; }
public DateTimeOffset StartDate { get; set; }
public DateTimeOffset? EndDate { get; set; }
public bool AutoApproveClaims { get; set; }
public bool Archived { get; set; } = false;
}
public List<PullPaymentModel> PullPayments { get; set; } = new List<PullPaymentModel>();
public override int CurrentPageCount => PullPayments.Count;
public PullPaymentState ActiveState { get; set; } = PullPaymentState.Active;
}
public class NewPullPaymentModel
{
[MaxLength(30)]
[Display(Name = "Name")]
public string Name { get; set; }
[Display(Name = "Description")]
public string Description { get; set; }
[Required]
[Display(Name = "Amount")]
public decimal Amount { get; set; }
[Required]
[ReadOnly(true)]
[Display(Name = "Currency")]
public string Currency { get; set; }
[Display(Name = "Payout Methods")]
public IEnumerable<string> PayoutMethods { get; set; }
public IEnumerable<SelectListItem> PayoutMethodsItem { get; set; }
[Display(Name = "Minimum acceptable expiration time for BOLT11 for refunds")]
[Range(0, 365 * 10)]
public long BOLT11Expiration { get; set; } = 30;
[Display(Name = "Automatically approve claims")]
public bool AutoApproveClaims { get; set; }
}
public class UpdatePullPaymentModel
{
[Display(Name = "Id")]
public string Id { get; set; }
public UpdatePullPaymentModel()
{
}
public UpdatePullPaymentModel(Data.PullPaymentData data)
{
if (data == null)
{
return;
}
Id = data.Id;
var blob = data.GetBlob();
Name = blob.Name;
Description = blob.Description;
}
[MaxLength(30)]
[Display(Name = "Name")]
public string Name { get; set; }
[Display(Name = "Memo")]
public string Description { get; set; }
}
}