package com.alipay.api.domain;

import com.alipay.api.AlipayObject;
import com.alipay.api.internal.mapping.ApiField;

/**
 * 签约参数，支付后签约场景使用
 *
 * @author auto create
 * @since 1.0, 2017-07-18 14:28:45
 */
public class AgreementSignParams extends AlipayObject {

    private static final long serialVersionUID = 4449999477694538358L;

    /**
     * 商户在芝麻端申请的appId
     */
    @ApiField("buckle_app_id")
    private String buckleAppId;

    /**
     * 商户在芝麻端申请的merchantId
     */
    @ApiField("buckle_merchant_id")
    private String buckleMerchantId;

    /**
     * 商户签约号，代扣协议中标示用户的唯一签约号（确保在商户系统中唯一）。
     * 格式规则：支持大写小写字母和数字，最长32位。
     * 商户系统按需传入，如果同一用户在同一产品码、同一签约场景下，签订了多份代扣协议，那么需要指定并传入该值。
     */
    @ApiField("external_agreement_no")
    private String externalAgreementNo;

    /**
     * 用户在商户网站的登录账号，用于在签约页面展示，如果为空，则不展示
     */
    @ApiField("external_logon_id")
    private String externalLogonId;

    /**
     * 个人签约产品码，商户和支付宝签约时确定。
     */
    @ApiField("personal_product_code")
    private String personalProductCode;

    /**
     * 签约营销参数，此值为json格式；具体的key需与营销约定
     */
    @ApiField("promo_params")
    private String promoParams;

    /**
     * 协议签约场景，商户和支付宝签约时确定。
     * 当传入商户签约号external_agreement_no时，场景不能为默认值DEFAULT|DEFAULT。
     */
    @ApiField("sign_scene")
    private String signScene;

    /**
     * 当前用户签约请求的协议有效周期。
     * 整形数字加上时间单位的协议有效期，从发起签约请求的时间开始算起。
     * 目前支持的时间单位：
     * 1. d：天
     * 2. m：月
     * 如果未传入，默认为长期有效。
     */
    @ApiField("sign_validity_period")
    private String signValidityPeriod;

    /**
     * 签约第三方主体类型。对于三方协议，表示当前用户和哪一类的第三方主体进行签约。
     * 取值范围：
     * 1. PARTNER（平台商户）;
     * 2. MERCHANT（集团商户），集团下子商户可共享用户签约内容;
     * 默认为PARTNER。
     */
    @ApiField("third_party_type")
    private String thirdPartyType;

    public String getBuckleAppId() {
        return this.buckleAppId;
    }

    public void setBuckleAppId(String buckleAppId) {
        this.buckleAppId = buckleAppId;
    }

    public String getBuckleMerchantId() {
        return this.buckleMerchantId;
    }

    public void setBuckleMerchantId(String buckleMerchantId) {
        this.buckleMerchantId = buckleMerchantId;
    }

    public String getExternalAgreementNo() {
        return this.externalAgreementNo;
    }

    public void setExternalAgreementNo(String externalAgreementNo) {
        this.externalAgreementNo = externalAgreementNo;
    }

    public String getExternalLogonId() {
        return this.externalLogonId;
    }

    public void setExternalLogonId(String externalLogonId) {
        this.externalLogonId = externalLogonId;
    }

    public String getPersonalProductCode() {
        return this.personalProductCode;
    }

    public void setPersonalProductCode(String personalProductCode) {
        this.personalProductCode = personalProductCode;
    }

    public String getPromoParams() {
        return this.promoParams;
    }

    public void setPromoParams(String promoParams) {
        this.promoParams = promoParams;
    }

    public String getSignScene() {
        return this.signScene;
    }

    public void setSignScene(String signScene) {
        this.signScene = signScene;
    }

    public String getSignValidityPeriod() {
        return this.signValidityPeriod;
    }

    public void setSignValidityPeriod(String signValidityPeriod) {
        this.signValidityPeriod = signValidityPeriod;
    }

    public String getThirdPartyType() {
        return this.thirdPartyType;
    }

    public void setThirdPartyType(String thirdPartyType) {
        this.thirdPartyType = thirdPartyType;
    }

}
