using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LifePayment.Domain
{
    public class NotifyUserAgreementPageSignInput
    {
        /// <summary>
        /// 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。
        /// </summary>
        [JsonProperty("personal_product_code", NullValueHandling = NullValueHandling.Ignore)]
        public string PersonalProductCode
        {
            get;
            set;
        }

        /// <summary>
        /// INDUSTRY|SATF_ACC 当前签约的协议场景。
        /// </summary>
        [JsonProperty("sign_scene", NullValueHandling = NullValueHandling.Ignore)]
        public string SignScene
        {
            get;
            set;
        }

        /// <summary>
        /// 协议当前状态
        /// 1. TEMP:暂存,协议未生效过;
        /// 2. NORMAL:正常;
        /// 3. STOP:暂停。
        /// </summary>
        [JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)]
        public string Status
        {
            get;
            set;
        }

        /// <summary>
        /// 2088101143488930 用户签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。
        /// </summary>
        [JsonProperty("alipay_user_id", NullValueHandling = NullValueHandling.Ignore)]
        public string AlipayUserId
        {
            get;
            set;
        }

        /// <summary>
        /// 20170502000610755993 支付宝系统中用以唯一标识用户签约记录的编号。
        /// </summary>
        [JsonProperty("agreement_no", NullValueHandling = NullValueHandling.Ignore)]
        public string AgreementNo
        {
            get;
            set;
        }

        /// <summary>
        /// 支付宝代扣协议的实际签约时间,格式为yyyy-MM-dd HH:mm:ss。
        /// </summary>
        [JsonProperty("sign_time", NullValueHandling = NullValueHandling.Ignore)]
        public string SignTime
        {
            get;
            set;
        }

        /// <summary>
        /// 13852852877 用户在商户网站的登录账号,如果商户接口中未传,则不会返回。
        /// </summary>
        [JsonProperty("external_logon_id", NullValueHandling = NullValueHandling.Ignore)]
        public string ExternalLogonId
        {
            get;
            set;
        }

        /// <summary>
        /// 支付宝分配给开发者的应用Id
        /// </summary>
        [JsonProperty("app_id", NullValueHandling = NullValueHandling.Ignore)]
        public string AppId
        {
            get;
            set;
        }

        /// <summary>
        /// 2017060101317935 支付宝分配给商户的应用Id
        /// </summary>
        [JsonProperty("auth_app_id", NullValueHandling = NullValueHandling.Ignore)]
        public string AuthAppId
        {
            get;
            set;
        }

        /// <summary>
        /// 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。
        /// </summary>
        [JsonProperty("external_agreement_no", NullValueHandling = NullValueHandling.Ignore)]
        public string ExternalAgreementNo
        {
            get;
            set;
        }

        /// <summary>
        /// 2017-05-20 11:49:19 用户代扣协议的实际生效时间,格式为yyyy-MM-dd HH:mm:ss。
        /// </summary>
        [JsonProperty("valid_time", NullValueHandling = NullValueHandling.Ignore)]
        public string ValidTime
        {
            get;
            set;
        }

        /// <summary>
        /// 返回脱敏的支付宝账号。
        /// </summary>
        [JsonProperty("alipay_logon_id", NullValueHandling = NullValueHandling.Ignore)]
        public string AlipayLogonId
        {
            get;
            set;
        }

        /// <summary>
        /// 用户签约成功通知类型
        /// </summary>
        [JsonProperty("notify_type", NullValueHandling = NullValueHandling.Ignore)]
        public string NotifyType
        {
            get;
            set;
        }
    }
}