using Newtonsoft.Json;

namespace LifePayment.Domain
{
    public class FundTransOrderChangedContent
    {
        /// <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>
        /// 支付宝支付资金流水号,仅当转账成功才会返回该参数
        /// </summary>
        [JsonProperty("pay_fund_order_id", NullValueHandling = NullValueHandling.Ignore)]
        public string PayFundOrderId
        {
            set;
            get;
        }

        /// <summary>
        /// 支付宝转账单据号
        /// </summary>
        [JsonProperty("order_id", NullValueHandling = NullValueHandling.Ignore)]
        public string OrderId
        {
            set;
            get;
        }

        /// <summary>
        /// 转账单据状态。可能出现的状态如下:
        /// SUCCESS:转账成功;
        /// WAIT_PAY:等待支付;
        /// CLOSED:订单超时关闭
        /// alipay.fund.trans.app.pay涉及的状态: WAIT_PAY SUCCESS CLOSED
        /// alipay.fund.trans.uni.transfer、alipay.fund.trans.refund涉及的状态:SUCCESS
        /// </summary>
        [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)]
        public string Status
        {
            set;
            get;
        }

        /// <summary>
        /// 资金订单的操作类型,CREATE-创建;FINISH- 订单处理已完结 CLOSE-超时关闭 ;
        /// </summary>
        [JsonProperty("action_type", NullValueHandling = NullValueHandling.Ignore)]
        public string ActionType
        {
            set;
            get;
        }

        /// <summary>
        /// 转账金额
        /// </summary>
        [JsonProperty("trans_amount", NullValueHandling = NullValueHandling.Ignore)]
        public string TransAmount
        {
            set;
            get;
        }

        /// <summary>
        /// 支付完成时间
        /// </summary>
        [JsonProperty("pay_date", NullValueHandling = NullValueHandling.Ignore)]
        public string PayDate
        {
            set;
            get;
        }

        /// <summary>
        /// 无忧收场景下的受理单号
        /// </summary>
        [JsonProperty("entrust_order_id", NullValueHandling = NullValueHandling.Ignore)]
        public string EntrustOrderId
        {
            set;
            get;
        }
    }
}