using Newtonsoft.Json;

namespace LifePayment.Domain
{
    public class FundBatchOrderChangedContent
    {
        /// <summary>
        /// 商户的批次号
        /// </summary>
        [JsonProperty("out_batch_no", NullValueHandling = NullValueHandling.Ignore)]
        public string OutBatchNo
        {
            set;
            get;
        }

        /// <summary>
        /// 业务产品码
        /// </summary>
        [JsonProperty("product_code", NullValueHandling = NullValueHandling.Ignore)]
        public string ProductCode
        {
            set;
            get;
        }

        /// <summary>
        /// 业务场景
        /// </summary>
        [JsonProperty("biz_scene", NullValueHandling = NullValueHandling.Ignore)]
        public string BizScene
        {
            set;
            get;
        }

        /// <summary>
        /// 请求来源的接口
        /// </summary>
        [JsonProperty("origin_interface", NullValueHandling = NullValueHandling.Ignore)]
        public string OriginInterface
        {
            set;
            get;
        }

        /// <summary>
        /// 支付宝内部的批次ID
        /// </summary>
        [JsonProperty("batch_trans_id", NullValueHandling = NullValueHandling.Ignore)]
        public string BatchTransId
        {
            set;
            get;
        }

        /// <summary>
        /// 付款方支付宝uid
        /// </summary>
        [JsonProperty("payer_user_id", NullValueHandling = NullValueHandling.Ignore)]
        public string PayerUserId
        {
            set;
            get;
        }


        /// <summary>
        /// 批次明细总笔数
        /// </summary>
        [JsonProperty("total_count", NullValueHandling = NullValueHandling.Ignore)]
        public string TotalCount
        {
            set;
            get;
        }

        /// <summary>
        /// 成功笔数
        /// </summary>
        [JsonProperty("success_count", NullValueHandling = NullValueHandling.Ignore)]
        public string SuccessCount
        {
            set;
            get;
        }

        /// <summary>
        /// 失败笔数。
        /// </summary>
        [JsonProperty("fail_count", NullValueHandling = NullValueHandling.Ignore)]
        public string FailCount
        {
            set;
            get;
        }

        /// <summary>
        /// 批次的总金额
        /// </summary>
        [JsonProperty("total_amount", NullValueHandling = NullValueHandling.Ignore)]
        public string TotalAmount
        {
            set;
            get;
        }

        /// <summary>
        /// 明细处理成功的支付汇总金额。
        /// </summary>
        [JsonProperty("success_amount", NullValueHandling = NullValueHandling.Ignore)]
        public string SuccessAmount
        {
            set;
            get;
        }

        /// <summary>
        /// 明细处理失败的支付汇总金额。
        /// </summary>
        [JsonProperty("fail_amount", NullValueHandling = NullValueHandling.Ignore)]
        public string FailAmount
        {
            set;
            get;
        }

        /// <summary>
        /// 批次状态:
        /// NIT 批次已接收
        /// WAIT_PAY 等待支付
        /// DEALING 批次处理中
        /// SUCCESS 批次处理全部成功
        /// PART_SUCCESS 批次处理部分成功
        /// FAIL 全部处理失败
        /// DISUSE 批次单据废弃
        /// INVALID 批次单据中明细全部无效
        /// </summary>
        [JsonProperty("batch_status", NullValueHandling = NullValueHandling.Ignore)]
        public string BatchStatus
        {
            set;
            get;
        }

        /// <summary>
        /// 商户回传参数
        /// </summary>
        [JsonProperty("passback_params", NullValueHandling = NullValueHandling.Ignore)]
        public string PassbackParams
        {
            set;
            get;
        }

        /// <summary>
        /// 批次失败错误码. 大部分情况是没有的. 只有超时关闭或废弃、付款方账户状态不正常等才有,具体值联系支付宝确认
        /// </summary>
        [JsonProperty("error_code", NullValueHandling = NullValueHandling.Ignore)]
        public string ErrorCode
        {
            set;
            get;
        }
        /// <summary>
        /// 关单操作者id,在特殊关单场景(例如用户通过接口下单,而去支付宝站内平台进行主动关单)下才有该返回值,并且不同场景值不同,具体值联系支付宝确认。
        /// </summary>
        [JsonProperty("disuse_op_uid", NullValueHandling = NullValueHandling.Ignore)]
        public string DisuseOpUid
        {
            set;
            get;
        }


    }
}