using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace LifePayment.Domain
{
    public class UserAgreementUnsignInput
    {
        /// <summary>
        /// 用户的支付å®è´¦å·å¯¹åº”的支付å®å”¯ä¸€ç”¨æˆ·å·ï¼Œ æœ¬å‚æ•°ä¸Žalipay_logon_id ä¸å¯åŒæ—¶ä¸ºç©ºï¼Œè‹¥éƒ½å¡«å†™ï¼Œåˆ™ä»¥æœ¬å‚数为准,优先级高于alipay_logon_id。
        /// </summary>
        [JsonProperty("alipay_open_id", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string AlipayOpenId
        {
            get;
            set;
        }
        /// <summary>
        /// 用户的支付å®ç™»å½•è´¦å·ï¼Œæ”¯æŒé‚®ç®±æˆ–手机å·ç æ ¼å¼ã€‚æœ¬å‚æ•°ä¸Žalipay_user_id ä¸å¯åŒæ—¶ä¸ºç©ºï¼Œè‹¥éƒ½å¡«å†™ï¼Œåˆ™ä»¥alipay_user_id 为准。
        /// </summary>
        [JsonProperty("alipay_logon_id", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string AlipayLogonId
        {
            get;
            set;
        }
        /// <summary>
        /// 支付å®ç³»ç»Ÿä¸ç”¨ä»¥å”¯ä¸€æ ‡è¯†ç”¨æˆ·ç¾çº¦è®°å½•的编å·ï¼ˆç”¨æˆ·ç¾çº¦æˆåŠŸåŽçš„åè®®å· ï¼‰ ï¼Œå¦‚æžœä¼ äº†è¯¥å‚æ•°ï¼Œå…¶ä»–傿•°ä¼šè¢«å¿½ç•¥
        /// </summary>
        [JsonProperty("agreement_no", NullValueHandling = NullValueHandling.Ignore)]
        public string AgreementNo
        {
            get;
            set;
        }
        /// <summary>
        /// 商户ç¾çº¦å·ï¼Œä»£æ‰£åè®®ä¸æ ‡ç¤ºç”¨æˆ·çš„唯一ç¾çº¦å·ï¼ˆç¡®ä¿åœ¨å•†æˆ·ç³»ç»Ÿä¸å”¯ä¸€ï¼‰ã€‚
        /// æ ¼å¼è§„则:支æŒå¤§å†™å°å†™å—æ¯å’Œæ•°å—,最长32ä½ã€‚
        /// 商户系统按需传入,如果åŒä¸€ç”¨æˆ·åœ¨åŒä¸€äº§å“ç ã€åŒä¸€ç¾çº¦åœºæ™¯ä¸‹ï¼Œç¾è®¢äº†å¤šä»½ä»£æ‰£åè®®ï¼Œé‚£ä¹ˆéœ€è¦æŒ‡å®šå¹¶ä¼ å…¥è¯¥å€¼ã€‚
        /// </summary>
        [JsonProperty("external_agreement_no", NullValueHandling = NullValueHandling.Ignore)]
        public string ExternalAgreementNo
        {
            get;
            set;
        }
        /// <summary>
        /// å议产å“ç ï¼Œå•†æˆ·å’Œæ”¯ä»˜å®ç¾çº¦æ—¶ç¡®å®šï¼Œä¸åŒä¸šåŠ¡åœºæ™¯å¯¹åº”ä¸åŒçš„ç¾çº¦äº§å“ç ã€‚
        /// </summary>
        [JsonProperty("personal_product_code", NullValueHandling = NullValueHandling.Ignore)]
        [Required]
        public string PersonalProductCode
        {
            get;
            set;
        }
        /// <summary>
        /// ç¾çº¦å议场景,商户和支付å®ç¾çº¦æ—¶ç¡®å®šï¼Œå•†æˆ·å¯å’¨è¯¢æŠ€æœ¯æ”¯æŒã€‚
        /// 当传入商户ç¾çº¦å· external_agreement_no 时,场景ä¸èƒ½ä¸ºç©ºæˆ–默认值 DEFAULT|DEFAULT。
        /// 该值需è¦ä¸Žç³»ç»Ÿ/页é¢ç¾çº¦æŽ¥å£è°ƒç”¨æ—¶ä¼ å…¥çš„å€¼ä¿æŒä¸€ 致。
        /// </summary>
        [JsonProperty("sign_scene", NullValueHandling = NullValueHandling.Ignore)]
        public string SignScene
        {
            get;
            set;
        }
        /// <summary>
        /// ç¾çº¦ç¬¬ä¸‰æ–¹ä¸»ä½“类型。对于三方å议,表示当å‰ç”¨æˆ·å’Œå“ªä¸€ç±»çš„第三方主体进行ç¾çº¦ã€‚
        /// å–值范围:
        /// 1. PARTNER(平å°å•†æˆ·ï¼‰
        /// 2. MERCHANT(集团商户),集团下å商户å¯å…±äº«ç”¨æˆ·ç¾çº¦å†…容
        /// 默认为PARTNER。
        /// </summary>
        [JsonProperty("third_party_type", NullValueHandling = NullValueHandling.Ignore)]
        public string ThirdPartyType
        {
            get;
            set;
        }
        /// <summary>
        /// æ‰©å±•å‚æ•°
        /// </summary>
        [JsonProperty("extend_params", NullValueHandling = NullValueHandling.Ignore)]
        public string ExtendParams
        {
            get;
            set;
        }
        /// <summary>
        /// æ“作类型:
        /// confirm(解约确认),invalid(解约作废)
        /// </summary>
        [JsonProperty("operate_type", NullValueHandling = NullValueHandling.Ignore)]
        public string OperateType
        {
            get;
            set;
        }
    }
}