using Newtonsoft.Json;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace LifePayment.Domain
{
    public class FundBatchUniTransferInput
    {
        /// <summary>
        /// 商户的批次å·
        /// </summary>
        [JsonProperty("out_batch_no", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string OutBatchNo
        {
            set;
            get;
        }
        /// <summary>
        /// 销售产å“ç ï¼Œå•†å®¶å’Œæ”¯ä»˜å®ç¾çº¦çš„产å“ç 
        /// </summary>
        [JsonProperty("product_code", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string ProductCode
        {
            set;
            get;
        }
        /// <summary>
        /// 业务场景。ä¸åŒåœºæ™¯å€¼ä¸åŒï¼Œå…·ä½“值è”系支付å®ç¡®è®¤ã€‚	MESSAGE_BATCH_PAY
        /// </summary>
        [JsonProperty("biz_scene", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string BizScene
        {
            set;
            get;
        }
        /// <summary>
        /// è®¢å•æ€»é‡‘é¢ï¼Œå•ä½ä¸ºå…ƒï¼Œç²¾ç¡®åˆ°å°æ•°ç‚¹åŽä¸¤ä½ï¼Œå–值范围[0.01,9999999999999.99]
        /// </summary>
        [JsonProperty("total_trans_amount", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public double TotaltransAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 批次总笔数
        /// </summary>
        [JsonProperty("total_count", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string TotalCount
        {
            set;
            get;
        }
        /// <summary>
        /// 付款方信æ¯
        /// </summary>
        [JsonProperty("payer_info", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public Participant PayerInfo
        {
            set;
            get;
        }
        /// <summary>
        /// 收款信æ¯åˆ—表
        /// </summary>
        [JsonProperty("trans_order_list", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public List<TransOrderDetail> TransOrderList
        {
            set;
            get;
        }
        /// <summary>
        /// 转账备注
        /// </summary>
        [JsonProperty("remark", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string Remark
        {
            set;
            get;
        }
        /// <summary>
        /// 支付ç»å¯¹è¶…时时间,格å¼ä¸ºyyyy-MM-dd HH:mm
        /// </summary>
        [JsonProperty("time_expire", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string TimeExpire
        {
            set;
            get;
        }
        /// <summary>
        /// JSONæ ¼å¼ï¼Œä¼ é€’ä¸šåŠ¡æ‰©å±•å‚æ•°ï¼Œä½¿ç”¨å‰è¯·ä¸Žæ”¯ä»˜å®å·¥ç¨‹å¸ˆè”ç³»ï¼ {"agreement_no":"2019000000000"} 授æƒåè®®å·
        /// </summary>
        [JsonProperty("business_params", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string BusinessParams
        {
            set;
            get;
        }
    }
    public class TransOrderDetail
    {
        /// <summary>
        /// 商户订å•å·
        /// </summary>
        [JsonProperty("out_biz_no", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string OutBizNo
        {
            set;
            get;
        }
        /// <summary>
        /// 转账金é¢
        /// </summary>
        [JsonProperty("trans_amount", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string TransAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 收款方信æ¯
        /// </summary>
        [JsonProperty("payee_info", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public Participant PayeeInfo
        {
            set;
            get;
        }
        /// <summary>
        /// 转账订å•的标题,用于在收银å°å’Œæ¶ˆè´¹è®°å½•展示
        /// </summary>
        [JsonProperty("order_title", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string OrderTitle
        {
            set;
            get;
        }
        /// <summary>
        /// 转账备注,收ã€ä»˜æ¬¾æ–¹å‡å¯è§ï¼Œæ”¶æ¬¾æ–¹å¦‚果是支付å®è´¦å·ï¼Œä¼šå±•示在收款方账å•里。
        /// </summary>
        [JsonProperty("remark", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string Remark
        {
            set;
            get;
        }
    }
}