using Newtonsoft.Json;
using System.Runtime.Serialization;
using Tea;

namespace LifePayment.Domain
{
    public class FundAccountBookQueryResponse : AlipayBaseOutput
    {
        /// <summary>
        /// 可用余额
        /// </summary>
        [NameInMap("available_amount")]
        public string AvaliableAmount
        {
            get;
            set;
        }

        /// <summary>
        /// 场景余额模式外标卡信息
        /// </summary>
        [NameInMap("ext_card_info")]
        public ExtCardInfo ExtCardInfo
        {
            get;
            set;
        }

        /// <summary>
        /// 资金记账本关联的授权信息
        /// </summary>
        [NameInMap("auth_info")]
        public AuthInfoDTO AuthInfo
        {
            get;
            set;
        }

        /// <summary>
        /// 记账账簿id
        /// </summary>
        [NameInMap("account_book_id")]
        public string AccountBookId
        {
            get;
            set;
        }
    }

    public class ExtCardInfo: TeaModel
    {
        /// <summary>
        /// 托管子户的外卡卡号
        /// </summary>
        [NameInMap("card_no")]
        public string CardNo
        {
            get;
            set;
        }

        /// <summary>
        /// 记账的外卡状态, A:正常状态; 其他:异常
        /// </summary>
        [NameInMap("status")]
        public string Status
        {
            get;
            set;
        }

        /// <summary>
        /// 记账的外卡户名
        /// </summary>
        [NameInMap("bank_acc_name")]
        public string BankAccName
        {
            get;
            set;
        }

        /// <summary>
        /// 托管子户外卡支行
        /// </summary>
        [NameInMap("card_branch")]
        public string CardBranch
        {
            get;
            set;
        }

        /// <summary>
        /// 托管子户外卡开户行
        /// </summary>
        [NameInMap("card_bank")]
        public string CardBank
        {
            get;
            set;
        }

        /// <summary>
        /// 托管子户外卡开户地址
        /// </summary>
        [NameInMap("card_location")]
        public string CardLocation
        {
            get;
            set;
        }

        /// <summary>
        /// 托管子户外卡联行号
        /// </summary>
        [NameInMap("card_deposit")]
        public string CardDeposit
        {
            get;
            set;
        }
    }

    public class AuthInfoDTO: TeaModel
    {
        /// <summary>
        /// 授权协议号
        /// </summary>
        /// <value>授权协议号</value>
        [NameInMap("agreement_no")]
        public string AgreementNo { get; set; }

        /// <summary>
        /// 授权的支付宝账号,脱敏。
        /// </summary>
        /// <value>授权的支付宝账号,脱敏。</value>
        [NameInMap("alipay_logon_id")]
        public string AlipayLogonId { get; set; }
    }
}