using Newtonsoft.Json;
using System.Collections.Generic;
using Tea;
namespace LifePayment.Domain
{
    public class FundBatchDetailQueryResponse : AlipayBaseOutput
    {
        /// <summary>
        /// 支付å®ç³»ç»Ÿå†…部批次请求id。
        /// </summary>
        [NameInMap("batch_trans_id")]
        public string BatchTransId
        {
            set;
            get;
        }
        /// <summary>
        /// å•†æˆ·è¯·æ±‚çš„æ‰¹æ¬¡æµæ°´å·ï¼ŒåŒè¯·æ±‚ä¸çš„"batch_no"ã€‚ï¼ˆæ³¨ï¼šåªæœ‰å¢ƒå¤–代å‘使用,其他场景返回out_batch_no)
        /// </summary>
        [NameInMap("batch_no")]
        public string BatchNo
        {
            set;
            get;
        }
        /// <summary>
        /// 批é‡ä»£å‘业务标识。
        /// 批é‡ä»£å‘到支付å®è´¦æˆ·ï¼šBATCH_TRANS_ACC
        /// 批é‡ä»£å‘到银行账户:BATCH_TRANS_BC
        ///ï¼ˆæ³¨ï¼šåªæœ‰å¢ƒå¤–代å‘使用,其他场景返回product_code)
        /// </summary>
        [NameInMap("biz_code")]
        public string BizCode
        {
            set;
            get;
        }
        /// <summary>
        /// 批é‡ä»£å‘业务场景。
        /// 如:GLOBAL:全çƒä»£å‘,多å¸ç§ä»£å‘(包括除人民å¸ä»¥å¤–çš„åŒå¸ç§ä»£å‘ï¼‰ï¼Œéœ€è¦æ”¯ä»˜å®åšè´§å¸å…‘æ¢ã€‚
        /// LOCAL:纯人民å¸ä»£å‘,ä¸éœ€è¦æ”¯ä»˜å®åšè´§å¸å…‘æ¢ã€‚
        /// MESSAGE_BATCH_PAYï¼šæŽ¥å£æŠ¥æ–‡ä»£å‘。
        /// </summary>
        [NameInMap("biz_scene")]
        public string BizScene
        {
            set;
            get;
        }
        /// <summary>
        /// 境外场景批次状æ€ï¼š
        /// INIT 批次已接收
        /// WAIT_APPLY 批次资金准备ä¸
        /// DEALING 批次处ç†ä¸
        /// FINISH 批次处ç†å®Œæˆ
        /// FAIL 全部处ç†å¤±è´¥
        /// UNKNOWN 未知状æ€
        /// 其他场景批次状æ€ï¼š
        /// INIT 批次已接收
        /// WAIT_PAY ç‰å¾…支付
        /// DEALING 批次处ç†ä¸
        /// SUCCESS 批次处ç†å…¨éƒ¨æˆåŠŸ
        /// PART_SUCCESS 批次处ç†éƒ¨åˆ†æˆåŠŸ
        /// FAIL 全部处ç†å¤±è´¥
        /// DISUSE æ‰¹æ¬¡å•æ®åºŸå¼ƒ
        /// INVALID æ‰¹æ¬¡å•æ®ä¸æ˜Žç»†å…¨éƒ¨æ— æ•ˆ
        /// </summary>
        [NameInMap("batch_status")]
        public string BatchStatus
        {
            set;
            get;
        }
        /// <summary>
        /// 批次失败错误ç .
        /// 大部分情况是没有的.åªæœ‰ä½™é¢ä¸è¶³è¶…æ—¶å…³é—æˆ–者付款方账户状æ€ä¸æ£å¸¸
        /// </summary>
        [NameInMap("error_code")]
        public string ErrorCode
        {
            set;
            get;
        }
        /// <summary>
        /// 批次失败错误原因
        /// </summary>
        [NameInMap("fail_reason")]
        public string FailReason
        {
            set;
            get;
        }
        /// <summary>
        /// ç¾çº¦äº†æ‰¹é‡ä»£å‘产å“的支付å®è´¦å·ã€‚(注:境外代å‘场景加会返回)
        /// </summary>
        [NameInMap("sign_principal")]
        public string SignPrincipal
        {
            set;
            get;
        }
        /// <summary>
        /// ä»˜æ¬¾æ–¹éœ€è¦æ”¯ä»˜çš„金é¢ï¼Œå—ç†æˆåŠŸï¼ˆstatus为APPLIEDï¼‰ä¹‹åŽæ‰ä¼šæœ‰å€¼ï¼Œå—ç†æˆåŠŸä¹‹å‰æ˜¯0。
        /// </summary>
        [NameInMap("payment_amount")]
        public string PaymentAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 支付å¸ç§, 与代å‘请求的payment_currency相åŒ.
        /// </summary>
        [NameInMap("payment_currency")]
        public string PaymentCurrency
        {
            set;
            get;
        }
        /// <summary>
        /// 当å‰è®°å½•数(默认500,达ä¸åˆ°500按实际记录返回)。
        /// </summary>
        [NameInMap("page_size")]
        public string PageSize
        {
            set;
            get;
        }
        /// <summary>
        /// 当å‰é¡µæ•°
        /// </summary>
        [NameInMap("page_num")]
        public string PageNum
        {
            set;
            get;
        }
        /// <summary>
        /// 业务产å“ç ã€‚ä¸åŒäº§å“值ä¸åŒï¼Œå…·ä½“值è”系支付å®ç¡®è®¤ã€‚
        /// </summary>
        [NameInMap("product_code")]
        public string ProductCode
        {
            set;
            get;
        }
        /// <summary>
        /// 总页数
        /// </summary>
        [NameInMap("total_page_count")]
        public string TotalPageCount
        {
            set;
            get;
        }
        /// <summary>
        /// 商户的批次å·
        /// </summary>
        [NameInMap("out_batch_no")]
        public string OutBatchNo
        {
            set;
            get;
        }
        /// <summary>
        /// 批次处ç†å®Œæˆæ—¶é—´
        /// </summary>
        [NameInMap("gmt_finish")]
        public string GmtFinish
        {
            set;
            get;
        }
        /// <summary>
        /// 批次总金é¢
        /// </summary>
        [NameInMap("total_amount")]
        public string TotalAmount
        {
            set;
            get;
        }
        /// <summary>
        /// æ‰¹æ¬¡æ”¯ä»˜å®Œæˆæ—¶é—´
        /// </summary>
        [NameInMap("gmt_pay_finish")]
        public string GmtPayFinish
        {
            set;
            get;
        }
        /// <summary>
        /// 付款方身份标识
        /// </summary>
        [NameInMap("payer_id")]
        public string PayerId
        {
            set;
            get;
        }
        /// <summary>
        /// æˆåŠŸé‡‘é¢
        /// </summary>
        [NameInMap("success_amount")]
        public string SuccessAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 失败金é¢
        /// </summary>
        [NameInMap("fail_amount")]
        public string FailAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 失败笔数
        /// </summary>
        [NameInMap("fail_count")]
        public string FailCount
        {
            set;
            get;
        }
        /// <summary>
        /// æˆåŠŸç¬”æ•°
        /// </summary>
        [NameInMap("success_count")]
        public string SuccessCount
        {
            set;
            get;
        }
        /// <summary>
        /// 总记录数
        /// </summary>
        [NameInMap("total_item_count")]
        public string TotalItemCount
        {
            set;
            get;
        }
        /// <summary>
        /// 1)当批次状æ€ä¸ºINITçŠ¶æ€æ—¶ï¼Œæ˜Žç»†ä¿¡æ¯è¿˜æœªè½åœ°ï¼Œè¿”回明细信æ¯ä¸ºç©º
        /// 2)如果以上都没有问题,返回明细为空,请检查是å¦ä»¥ä¸‹æƒ…况导致:
        /// 1. 校验商户åªèƒ½æŸ¥è¯¢è‡ªå·±ä¸Šä¼ çš„æ‰¹æ¬¡ä¿¡æ¯ï¼Œæ‰¹æ¬¡å·ä¸å˜åœ¨æˆ–è€…ä¸æ˜¯è¯¥å•†æˆ·ä¸Šä¼ çš„æ‰¹æ¬¡ã€‚
        /// 2. 查询æ¡ä»¶æ²¡æœ‰æŸ¥è¯¢åˆ°ç»“果,包括总共5é¡µï¼Œå•†æˆ·è¦æ±‚查询第6页的内容。
        /// 3. 查询的状æ€ä¸å˜åœ¨ã€‚
        /// </summary>
        [NameInMap("acc_detail_list")]
        public List<AccDetailModel> AccDetailList
        {
            set;
            get;
        }
    }
    public class AccDetailModel
    {
        /// <summary>
        /// 应付金é¢. 付款方应付金é¢.
        /// LOCAL场景下为空.
        /// </summary>
        [NameInMap("payment_amount")]
        public string PaymentAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 支付å¸ç§.付款方应付的å¸ç§, 与批次请求时的payment_currency相åŒ.
        /// </summary>
        [NameInMap("payment_currency")]
        public string PaymentCurrency
        {
            set;
            get;
        }
        /// <summary>
        /// 转账金é¢ã€‚代å‘è¯·æ±‚ä¸æŒ‡å®šçš„trans_amount.
        /// </summary>
        [NameInMap("trans_amount")]
        public string TransAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 转账å¸ç§
        /// </summary>
        [NameInMap("trans_currency")]
        public string TransCurrency
        {
            set;
            get;
        }
        /// <summary>
        /// 结算金é¢ã€‚
        /// 收款方实际收到的金é¢.
        /// biz_scene是LOCALåœºæ™¯ä¸‹ï¼Œè¯¥å‚æ•°è¿”回空。
        /// </summary>
        [NameInMap("settlement_amount")]
        public string SettlementAmount
        {
            set;
            get;
        }
        /// <summary>
        /// 结算å¸ç§.收款方收到的å¸ç§. LOCAL场景下为空.
        /// </summary>
        [NameInMap("settlement_currency")]
        public string SettlementCurrency
        {
            set;
            get;
        }
        /// <summary>
        /// 收款方信æ¯ã€‚
        /// </summary>
        [NameInMap("payee_info")]
        public AccPayeeInfo PayeeInfo
        {
            set;
            get;
        }
        /// <summary>
        /// 收款方身份认è¯ä¿¡æ¯ã€‚biz_scene=LOCALæ—¶å¿½ç•¥è¯¥å‚æ•°ã€‚
        /// </summary>
        [NameInMap("cert_info")]
        public CertInfo CertInfo
        {
            set;
            get;
        }
        /// <summary>
        /// 备注
        /// </summary>
        [NameInMap("remark")]
        public string Remark
        {
            set;
            get;
        }
        /// <summary>
        /// INIT:åˆå§‹
        /// APPLIED:已下å•
        /// DEALED:处ç†ä¸
        /// SUCCESSï¼šå¤„ç†æˆåŠŸ
        /// DISUSE:已废除
        /// FAIL:处ç†å¤±è´¥
        /// UNKNOWN:未知状æ€
        /// </summary>
        [NameInMap("status")]
        public string Status
        {
            set;
            get;
        }
        /// <summary>
        /// 是å¦éœ€è¦é€šè¿‡alipay_order_noåŽŸå•æ®é‡è¯•.
        /// T: 需è¦;
        /// F或为空: ä¸éœ€è¦.
        /// </summary>
        [NameInMap("need_retry")]
        public string NeedRetry
        {
            set;
            get;
        }
        /// <summary>
        /// 支付å®è®¢å•å·
        /// </summary>
        [NameInMap("alipay_order_no")]
        public string AlipayOrderNo
        {
            set;
            get;
        }
        /// <summary>
        /// 商户明细订å•å·
        /// </summary>
        [NameInMap("out_biz_no")]
        public string OutBizNo
        {
            set;
            get;
        }
        /// <summary>
        /// 支付å®ç³»ç»Ÿå†…部明细å•å·ã€‚
        /// </summary>
        [NameInMap("detail_id")]
        public string DetailId
        {
            set;
            get;
        }
        /// <summary>
        /// 明细失败错误ç 
        /// </summary>
        [NameInMap("error_code")]
        public string ErrorCode
        {
            set;
            get;
        }
        /// <summary>
        /// 明细失败错误原因
        /// </summary>
        [NameInMap("error_msg")]
        public string ErrorMsg
        {
            set;
            get;
        }
        /// <summary>
        /// 创建时间
        /// </summary>
        [NameInMap("gmt_create")]
        public string GmtCreate
        {
            set;
            get;
        }
        /// <summary>
        /// å®Œæˆæ—¶é—´
        /// </summary>
        [NameInMap("gmt_finish")]
        public string GmtFinish
        {
            set;
            get;
        }
        /// <summary>
        /// å状æ€
        /// </summary>
        [NameInMap("sub_status")]
        public string SubStatus
        {
            set;
            get;
        }
    }
    public class AccPayeeInfo
    {
        /// <summary>
        /// 收款方电å钱包账å·ã€‚
        /// </summary>
        [NameInMap("payee_account")]
        public string PayeeAccount
        {
            set;
            get;
        }
        /// <summary>
        /// 收款方电åé’±åŒ…æŒæœ‰è€…å§“å。
        /// </summary>
        [NameInMap("payee_name")]
        public string PayeeName
        {
            set;
            get;
        }
    }
    public class CertInfo
    {
        /// <summary>
        /// 代呿—¶å•†å®¶ä¸Šä¼ çš„æ”¶æ¬¾æ–¹è¯ä»¶å·ç 
        /// biz_scene=LOCALæ—¶å¿½ç•¥è¯¥å‚æ•°ã€‚
        /// </summary>
        [NameInMap("cert_no")]
        public string CertNo
        {
            set;
            get;
        }
        /// <summary>
        /// 代呿—¶å•†å®¶ä¸Šä¼ çš„æ”¶æ¬¾æ–¹è¯ä»¶ç±»åž‹ã€‚
        /// biz_scene=LOCALæ—¶å¿½ç•¥è¯¥å‚æ•°ã€‚
        /// </summary>
        [NameInMap("cert_type")]
        public string CertType
        {
            set;
            get;
        }
    }
}