content: /*
   * 支付宝开放平台API
   * 支付宝开放平台v3协议文档
   *
   * The version of the OpenAPI document: 2025-08-26
   * 
   *
   * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
   * https://openapi-generator.tech
   * Do not edit the class manually.
   */
  
  
  package com.alipay.v3.model;
  
  import java.util.Objects;
  import java.util.Arrays;
  import com.google.gson.TypeAdapter;
  import com.google.gson.annotations.JsonAdapter;
  import com.google.gson.annotations.SerializedName;
  import com.google.gson.stream.JsonReader;
  import com.google.gson.stream.JsonWriter;
  import io.swagger.annotations.ApiModel;
  import io.swagger.annotations.ApiModelProperty;
  import java.io.IOException;
  
  import com.google.gson.Gson;
  import com.google.gson.GsonBuilder;
  import com.google.gson.JsonArray;
  import com.google.gson.JsonDeserializationContext;
  import com.google.gson.JsonDeserializer;
  import com.google.gson.JsonElement;
  import com.google.gson.JsonObject;
  import com.google.gson.JsonParseException;
  import com.google.gson.TypeAdapterFactory;
  import com.google.gson.reflect.TypeToken;
  
  import java.lang.reflect.Type;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.Map;
  import java.util.Map.Entry;
  import java.util.Set;
  
  import com.alipay.v3.JSON;
  
  /**
   * AlipayOfflineMarketShopCreateModel
   */
  @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
  public class AlipayOfflineMarketShopCreateModel {
    public static final String SERIALIZED_NAME_ADDRESS = "address";
    @SerializedName(SERIALIZED_NAME_ADDRESS)
    private String address;
  
    public static final String SERIALIZED_NAME_AUDIT_IMAGES = "audit_images";
    @SerializedName(SERIALIZED_NAME_AUDIT_IMAGES)
    private String auditImages;
  
    public static final String SERIALIZED_NAME_AUTH_LETTER = "auth_letter";
    @SerializedName(SERIALIZED_NAME_AUTH_LETTER)
    private String authLetter;
  
    public static final String SERIALIZED_NAME_BIZ_VERSION = "biz_version";
    @SerializedName(SERIALIZED_NAME_BIZ_VERSION)
    private String bizVersion;
  
    public static final String SERIALIZED_NAME_BOX = "box";
    @SerializedName(SERIALIZED_NAME_BOX)
    private String box;
  
    public static final String SERIALIZED_NAME_BRANCH_SHOP_NAME = "branch_shop_name";
    @SerializedName(SERIALIZED_NAME_BRANCH_SHOP_NAME)
    private String branchShopName;
  
    public static final String SERIALIZED_NAME_BRAND_LOGO = "brand_logo";
    @SerializedName(SERIALIZED_NAME_BRAND_LOGO)
    private String brandLogo;
  
    public static final String SERIALIZED_NAME_BRAND_NAME = "brand_name";
    @SerializedName(SERIALIZED_NAME_BRAND_NAME)
    private String brandName;
  
    public static final String SERIALIZED_NAME_BUSINESS_CERTIFICATE = "business_certificate";
    @SerializedName(SERIALIZED_NAME_BUSINESS_CERTIFICATE)
    private String businessCertificate;
  
    public static final String SERIALIZED_NAME_BUSINESS_CERTIFICATE_EXPIRES = "business_certificate_expires";
    @SerializedName(SERIALIZED_NAME_BUSINESS_CERTIFICATE_EXPIRES)
    private String businessCertificateExpires;
  
    public static final String SERIALIZED_NAME_BUSINESS_TIME = "business_time";
    @SerializedName(SERIALIZED_NAME_BUSINESS_TIME)
    private String businessTime;
  
    public static final String SERIALIZED_NAME_CATEGORY_ID = "category_id";
    @SerializedName(SERIALIZED_NAME_CATEGORY_ID)
    private String categoryId;
  
    public static final String SERIALIZED_NAME_CITY_CODE = "city_code";
    @SerializedName(SERIALIZED_NAME_CITY_CODE)
    private String cityCode;
  
    public static final String SERIALIZED_NAME_CONTACT_NUMBER = "contact_number";
    @SerializedName(SERIALIZED_NAME_CONTACT_NUMBER)
    private String contactNumber;
  
    public static final String SERIALIZED_NAME_CREATOR = "creator";
    @SerializedName(SERIALIZED_NAME_CREATOR)
    private String creator;
  
    public static final String SERIALIZED_NAME_DISTRICT_CODE = "district_code";
    @SerializedName(SERIALIZED_NAME_DISTRICT_CODE)
    private String districtCode;
  
    public static final String SERIALIZED_NAME_ENTERPRISE_LOGON_ID = "enterprise_logon_id";
    @SerializedName(SERIALIZED_NAME_ENTERPRISE_LOGON_ID)
    private String enterpriseLogonId;
  
    public static final String SERIALIZED_NAME_ENTERPRISE_NAME = "enterprise_name";
    @SerializedName(SERIALIZED_NAME_ENTERPRISE_NAME)
    private String enterpriseName;
  
    public static final String SERIALIZED_NAME_IMPLEMENT_ID = "implement_id";
    @SerializedName(SERIALIZED_NAME_IMPLEMENT_ID)
    private String implementId;
  
    public static final String SERIALIZED_NAME_IS_OPERATING_ONLINE = "is_operating_online";
    @SerializedName(SERIALIZED_NAME_IS_OPERATING_ONLINE)
    private String isOperatingOnline;
  
    public static final String SERIALIZED_NAME_ISV_UID = "isv_uid";
    @SerializedName(SERIALIZED_NAME_ISV_UID)
    private String isvUid;
  
    public static final String SERIALIZED_NAME_LATITUDE = "latitude";
    @SerializedName(SERIALIZED_NAME_LATITUDE)
    private String latitude;
  
    public static final String SERIALIZED_NAME_LEADS_ID = "leads_id";
    @SerializedName(SERIALIZED_NAME_LEADS_ID)
    private String leadsId;
  
    public static final String SERIALIZED_NAME_LICENCE = "licence";
    @SerializedName(SERIALIZED_NAME_LICENCE)
    private String licence;
  
    public static final String SERIALIZED_NAME_LICENCE_CODE = "licence_code";
    @SerializedName(SERIALIZED_NAME_LICENCE_CODE)
    private String licenceCode;
  
    public static final String SERIALIZED_NAME_LICENCE_EXPIRES = "licence_expires";
    @SerializedName(SERIALIZED_NAME_LICENCE_EXPIRES)
    private String licenceExpires;
  
    public static final String SERIALIZED_NAME_LICENCE_NAME = "licence_name";
    @SerializedName(SERIALIZED_NAME_LICENCE_NAME)
    private String licenceName;
  
    public static final String SERIALIZED_NAME_LONGITUDE = "longitude";
    @SerializedName(SERIALIZED_NAME_LONGITUDE)
    private String longitude;
  
    public static final String SERIALIZED_NAME_MAIN_IMAGE = "main_image";
    @SerializedName(SERIALIZED_NAME_MAIN_IMAGE)
    private String mainImage;
  
    public static final String SERIALIZED_NAME_MAIN_SHOP_NAME = "main_shop_name";
    @SerializedName(SERIALIZED_NAME_MAIN_SHOP_NAME)
    private String mainShopName;
  
    public static final String SERIALIZED_NAME_NO_SMOKING = "no_smoking";
    @SerializedName(SERIALIZED_NAME_NO_SMOKING)
    private String noSmoking;
  
    public static final String SERIALIZED_NAME_NOTIFY_MOBILE = "notify_mobile";
    @SerializedName(SERIALIZED_NAME_NOTIFY_MOBILE)
    private String notifyMobile;
  
    public static final String SERIALIZED_NAME_NOTIFY_URL = "notify_url";
    @SerializedName(SERIALIZED_NAME_NOTIFY_URL)
    private String notifyUrl;
  
    public static final String SERIALIZED_NAME_ONLINE_IMAGE = "online_image";
    @SerializedName(SERIALIZED_NAME_ONLINE_IMAGE)
    private String onlineImage;
  
    public static final String SERIALIZED_NAME_ONLINE_URL = "online_url";
    @SerializedName(SERIALIZED_NAME_ONLINE_URL)
    private String onlineUrl;
  
    public static final String SERIALIZED_NAME_OP_ROLE = "op_role";
    @SerializedName(SERIALIZED_NAME_OP_ROLE)
    private String opRole;
  
    public static final String SERIALIZED_NAME_OPERATE_NOTIFY_URL = "operate_notify_url";
    @SerializedName(SERIALIZED_NAME_OPERATE_NOTIFY_URL)
    private String operateNotifyUrl;
  
    public static final String SERIALIZED_NAME_OTHER_AUTHORIZATION = "other_authorization";
    @SerializedName(SERIALIZED_NAME_OTHER_AUTHORIZATION)
    private String otherAuthorization;
  
    public static final String SERIALIZED_NAME_PARKING = "parking";
    @SerializedName(SERIALIZED_NAME_PARKING)
    private String parking;
  
    public static final String SERIALIZED_NAME_PARTNER_ID = "partner_id";
    @SerializedName(SERIALIZED_NAME_PARTNER_ID)
    private String partnerId;
  
    public static final String SERIALIZED_NAME_PAY_TYPE = "pay_type";
    @SerializedName(SERIALIZED_NAME_PAY_TYPE)
    private String payType;
  
    public static final String SERIALIZED_NAME_PROVINCE_CODE = "province_code";
    @SerializedName(SERIALIZED_NAME_PROVINCE_CODE)
    private String provinceCode;
  
    public static final String SERIALIZED_NAME_REF_APPLY_ID = "ref_apply_id";
    @SerializedName(SERIALIZED_NAME_REF_APPLY_ID)
    private String refApplyId;
  
    public static final String SERIALIZED_NAME_REQUEST_ID = "request_id";
    @SerializedName(SERIALIZED_NAME_REQUEST_ID)
    private String requestId;
  
    public static final String SERIALIZED_NAME_STORE_ID = "store_id";
    @SerializedName(SERIALIZED_NAME_STORE_ID)
    private String storeId;
  
    public static final String SERIALIZED_NAME_VALUE_ADDED = "value_added";
    @SerializedName(SERIALIZED_NAME_VALUE_ADDED)
    private String valueAdded;
  
    public static final String SERIALIZED_NAME_VERSION = "version";
    @SerializedName(SERIALIZED_NAME_VERSION)
    private String version;
  
    public static final String SERIALIZED_NAME_WIFI = "wifi";
    @SerializedName(SERIALIZED_NAME_WIFI)
    private String wifi;
  
    public AlipayOfflineMarketShopCreateModel() { 
    }
  
    public AlipayOfflineMarketShopCreateModel address(String address) {
      
      this.address = address;
      return this;
    }
  
     /**
     * 门店详细地址，地址字符长度在4-50个字符，注：不含省市区。门店详细地址按规范格式填写地址，以免影响门店搜索及活动报名：例1：道路+门牌号，“人民东路18号”；例2：道路+门牌号+标志性建筑+楼层，“四川北路1552号欢乐广场1楼”。
     * @return address
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "万塘路18号黄龙时代广场", value = "门店详细地址，地址字符长度在4-50个字符，注：不含省市区。门店详细地址按规范格式填写地址，以免影响门店搜索及活动报名：例1：道路+门牌号，“人民东路18号”；例2：道路+门牌号+标志性建筑+楼层，“四川北路1552号欢乐广场1楼”。")
  
    public String getAddress() {
      return address;
    }
  
  
    public void setAddress(String address) {
      this.address = address;
    }
  
  
    public AlipayOfflineMarketShopCreateModel auditImages(String auditImages) {
      
      this.auditImages = auditImages;
      return this;
    }
  
     /**
     * 门店审核时需要的图片；至少包含一张门头照片，两张内景照片，必须反映真实的门店情况，审核才能够通过；多个图片之间以英文逗号分隔。
     * @return auditImages
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC,4Q8Pp00AT7eo9NoAJkMR3AAAACMAAUYT", value = "门店审核时需要的图片；至少包含一张门头照片，两张内景照片，必须反映真实的门店情况，审核才能够通过；多个图片之间以英文逗号分隔。")
  
    public String getAuditImages() {
      return auditImages;
    }
  
  
    public void setAuditImages(String auditImages) {
      this.auditImages = auditImages;
    }
  
  
    public AlipayOfflineMarketShopCreateModel authLetter(String authLetter) {
      
      this.authLetter = authLetter;
      return this;
    }
  
     /**
     * 门店授权函,营业执照与签约账号主体不一致时需要。
     * @return authLetter
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "门店授权函,营业执照与签约账号主体不一致时需要。")
  
    public String getAuthLetter() {
      return authLetter;
    }
  
  
    public void setAuthLetter(String authLetter) {
      this.authLetter = authLetter;
    }
  
  
    public AlipayOfflineMarketShopCreateModel bizVersion(String bizVersion) {
      
      this.bizVersion = bizVersion;
      return this;
    }
  
     /**
     * 店铺接口业务版本号，新接入的ISV，请统一传入2.0。
     * @return bizVersion
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2.0", value = "店铺接口业务版本号，新接入的ISV，请统一传入2.0。")
  
    public String getBizVersion() {
      return bizVersion;
    }
  
  
    public void setBizVersion(String bizVersion) {
      this.bizVersion = bizVersion;
    }
  
  
    public AlipayOfflineMarketShopCreateModel box(String box) {
      
      this.box = box;
      return this;
    }
  
     /**
     * 门店是否有包厢，T表示有，F表示没有，不传在客户端不作展示。
     * @return box
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "门店是否有包厢，T表示有，F表示没有，不传在客户端不作展示。")
  
    public String getBox() {
      return box;
    }
  
  
    public void setBox(String box) {
      this.box = box;
    }
  
  
    public AlipayOfflineMarketShopCreateModel branchShopName(String branchShopName) {
      
      this.branchShopName = branchShopName;
      return this;
    }
  
     /**
     * 分店名称，比如：万塘路店，与主门店名合并在客户端显示为：肯德基(万塘路店)。
     * @return branchShopName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "万塘路店", value = "分店名称，比如：万塘路店，与主门店名合并在客户端显示为：肯德基(万塘路店)。")
  
    public String getBranchShopName() {
      return branchShopName;
    }
  
  
    public void setBranchShopName(String branchShopName) {
      this.branchShopName = branchShopName;
    }
  
  
    public AlipayOfflineMarketShopCreateModel brandLogo(String brandLogo) {
      
      this.brandLogo = brandLogo;
      return this;
    }
  
     /**
     * 品牌LOGO; 图片ID，不填写则默认为门店首图main_image。
     * @return brandLogo
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "品牌LOGO; 图片ID，不填写则默认为门店首图main_image。")
  
    public String getBrandLogo() {
      return brandLogo;
    }
  
  
    public void setBrandLogo(String brandLogo) {
      this.brandLogo = brandLogo;
    }
  
  
    public AlipayOfflineMarketShopCreateModel brandName(String brandName) {
      
      this.brandName = brandName;
      return this;
    }
  
     /**
     * 品牌名，不填写则默认为“其它品牌”。
     * @return brandName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "肯德基", value = "品牌名，不填写则默认为“其它品牌”。")
  
    public String getBrandName() {
      return brandName;
    }
  
  
    public void setBrandName(String brandName) {
      this.brandName = brandName;
    }
  
  
    public AlipayOfflineMarketShopCreateModel businessCertificate(String businessCertificate) {
      
      this.businessCertificate = businessCertificate;
      return this;
    }
  
     /**
     * 许可证，各行业所需的证照资质参见&lt;a href&#x3D;\&quot;https://doc.open.alipay.com/doc2/detail.htm?treeId&#x3D;205&amp;articleId&#x3D;104497&amp;docType&#x3D;1\&quot;&gt;商户入驻要求&lt;/a&gt;；该字段只能上传一张许可证，一张以外的许可证、除营业执照和许可证之外其他证照请放在其他资质字段上传。
     * @return businessCertificate
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "许可证，各行业所需的证照资质参见<a href=\"https://doc.open.alipay.com/doc2/detail.htm?treeId=205&articleId=104497&docType=1\">商户入驻要求</a>；该字段只能上传一张许可证，一张以外的许可证、除营业执照和许可证之外其他证照请放在其他资质字段上传。")
  
    public String getBusinessCertificate() {
      return businessCertificate;
    }
  
  
    public void setBusinessCertificate(String businessCertificate) {
      this.businessCertificate = businessCertificate;
    }
  
  
    public AlipayOfflineMarketShopCreateModel businessCertificateExpires(String businessCertificateExpires) {
      
      this.businessCertificateExpires = businessCertificateExpires;
      return this;
    }
  
     /**
     * 许可证有效期，格式：2020-03-20或长期。严格按照格式填写。
     * @return businessCertificateExpires
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2020-03-20", value = "许可证有效期，格式：2020-03-20或长期。严格按照格式填写。")
  
    public String getBusinessCertificateExpires() {
      return businessCertificateExpires;
    }
  
  
    public void setBusinessCertificateExpires(String businessCertificateExpires) {
      this.businessCertificateExpires = businessCertificateExpires;
    }
  
  
    public AlipayOfflineMarketShopCreateModel businessTime(String businessTime) {
      
      this.businessTime = businessTime;
      return this;
    }
  
     /**
     * 请严格按\&quot;周一-周五 09:00-20:00,周六-周日 10:00-22:00\&quot;的格式进行填写，时间段不能重复，最多支持两个时间段，24小时营业请填写\&quot;00:00-23:59\&quot;
     * @return businessTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "周一-周五 09:00-20:00,周六-周日 10:00-22:00", value = "请严格按\"周一-周五 09:00-20:00,周六-周日 10:00-22:00\"的格式进行填写，时间段不能重复，最多支持两个时间段，24小时营业请填写\"00:00-23:59\"")
  
    public String getBusinessTime() {
      return businessTime;
    }
  
  
    public void setBusinessTime(String businessTime) {
      this.businessTime = businessTime;
    }
  
  
    public AlipayOfflineMarketShopCreateModel categoryId(String categoryId) {
      
      this.categoryId = categoryId;
      return this;
    }
  
     /**
     * 类目id，请参考&lt;a href&#x3D;\&quot;https://doc.open.alipay.com/doc2/detail.htm?treeId&#x3D;205&amp;articleId&#x3D;104497&amp;docType&#x3D;1\&quot;&gt;商户入驻要求&lt;/a&gt;。
     * @return categoryId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2015050700000018", value = "类目id，请参考<a href=\"https://doc.open.alipay.com/doc2/detail.htm?treeId=205&articleId=104497&docType=1\">商户入驻要求</a>。")
  
    public String getCategoryId() {
      return categoryId;
    }
  
  
    public void setCategoryId(String categoryId) {
      this.categoryId = categoryId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel cityCode(String cityCode) {
      
      this.cityCode = cityCode;
      return this;
    }
  
     /**
     * 城市编码，国标码，详见国家统计局数据 &lt;a href&#x3D;\&quot;https://gw.alipayobjects.com/os/basement_prod/92d874c4-39a9-4977-b710-d55dad374b7f.csv\&quot;&gt;点此下载&lt;/a&gt;。
     * @return cityCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "140500", value = "城市编码，国标码，详见国家统计局数据 <a href=\"https://gw.alipayobjects.com/os/basement_prod/92d874c4-39a9-4977-b710-d55dad374b7f.csv\">点此下载</a>。")
  
    public String getCityCode() {
      return cityCode;
    }
  
  
    public void setCityCode(String cityCode) {
      this.cityCode = cityCode;
    }
  
  
    public AlipayOfflineMarketShopCreateModel contactNumber(String contactNumber) {
      
      this.contactNumber = contactNumber;
      return this;
    }
  
     /**
     * 门店电话号码；支持座机和手机，只支持数字和+-号，在客户端对用户展现， 支持多个电话， 以英文逗号分隔。
     * @return contactNumber
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "13612344321,021-12336754", value = "门店电话号码；支持座机和手机，只支持数字和+-号，在客户端对用户展现， 支持多个电话， 以英文逗号分隔。")
  
    public String getContactNumber() {
      return contactNumber;
    }
  
  
    public void setContactNumber(String contactNumber) {
      this.contactNumber = contactNumber;
    }
  
  
    public AlipayOfflineMarketShopCreateModel creator(String creator) {
      
      this.creator = creator;
      return this;
    }
  
     /**
     * （支付宝内部参数）小二的支付宝账号。
     * @return creator
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088100000000011", value = "（支付宝内部参数）小二的支付宝账号。")
  
    public String getCreator() {
      return creator;
    }
  
  
    public void setCreator(String creator) {
      this.creator = creator;
    }
  
  
    public AlipayOfflineMarketShopCreateModel districtCode(String districtCode) {
      
      this.districtCode = districtCode;
      return this;
    }
  
     /**
     * 区县编码，国标码，详见国家统计局数据 &lt;a href&#x3D;\&quot;https://gw.alipayobjects.com/os/basement_prod/92d874c4-39a9-4977-b710-d55dad374b7f.csv\&quot;&gt;点此下载&lt;/a&gt;。
     * @return districtCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "140521", value = "区县编码，国标码，详见国家统计局数据 <a href=\"https://gw.alipayobjects.com/os/basement_prod/92d874c4-39a9-4977-b710-d55dad374b7f.csv\">点此下载</a>。")
  
    public String getDistrictCode() {
      return districtCode;
    }
  
  
    public void setDistrictCode(String districtCode) {
      this.districtCode = districtCode;
    }
  
  
    public AlipayOfflineMarketShopCreateModel enterpriseLogonId(String enterpriseLogonId) {
      
      this.enterpriseLogonId = enterpriseLogonId;
      return this;
    }
  
     /**
     * （支付宝内部参数）企业支付宝账号。
     * @return enterpriseLogonId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "test@sina.com", value = "（支付宝内部参数）企业支付宝账号。")
  
    public String getEnterpriseLogonId() {
      return enterpriseLogonId;
    }
  
  
    public void setEnterpriseLogonId(String enterpriseLogonId) {
      this.enterpriseLogonId = enterpriseLogonId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel enterpriseName(String enterpriseName) {
      
      this.enterpriseName = enterpriseName;
      return this;
    }
  
     /**
     * （支付宝内部参数）企业支付宝账户名称。
     * @return enterpriseName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "测试商户有限公司", value = "（支付宝内部参数）企业支付宝账户名称。")
  
    public String getEnterpriseName() {
      return enterpriseName;
    }
  
  
    public void setEnterpriseName(String enterpriseName) {
      this.enterpriseName = enterpriseName;
    }
  
  
    public AlipayOfflineMarketShopCreateModel implementId(String implementId) {
      
      this.implementId = implementId;
      return this;
    }
  
     /**
     * 机具号，多个之间以英文逗号分隔。
     * @return implementId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "HU002,HT002", value = "机具号，多个之间以英文逗号分隔。")
  
    public String getImplementId() {
      return implementId;
    }
  
  
    public void setImplementId(String implementId) {
      this.implementId = implementId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel isOperatingOnline(String isOperatingOnline) {
      
      this.isOperatingOnline = isOperatingOnline;
      return this;
    }
  
     /**
     * 是否在其他平台开店，T表示有开店，F表示未开店。
     * @return isOperatingOnline
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "是否在其他平台开店，T表示有开店，F表示未开店。")
  
    public String getIsOperatingOnline() {
      return isOperatingOnline;
    }
  
  
    public void setIsOperatingOnline(String isOperatingOnline) {
      this.isOperatingOnline = isOperatingOnline;
    }
  
  
    public AlipayOfflineMarketShopCreateModel isvUid(String isvUid) {
      
      this.isvUid = isvUid;
      return this;
    }
  
     /**
     * ISV返佣id，门店创建、或者门店交易的返佣将通过此账号反给ISV，如果有口碑签订了返佣协议，则该字段作为返佣数据提取的依据。此字段必须是个合法uid，2088开头的16位支付宝会员账号，如果传入错误将无法创建门店。
     * @return isvUid
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088001969784501", value = "ISV返佣id，门店创建、或者门店交易的返佣将通过此账号反给ISV，如果有口碑签订了返佣协议，则该字段作为返佣数据提取的依据。此字段必须是个合法uid，2088开头的16位支付宝会员账号，如果传入错误将无法创建门店。")
  
    public String getIsvUid() {
      return isvUid;
    }
  
  
    public void setIsvUid(String isvUid) {
      this.isvUid = isvUid;
    }
  
  
    public AlipayOfflineMarketShopCreateModel latitude(String latitude) {
      
      this.latitude = latitude;
      return this;
    }
  
     /**
     * 纬度；最长15位字符（包括小数点）， 注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker
     * @return latitude
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "30.548828", value = "纬度；最长15位字符（包括小数点）， 注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker")
  
    public String getLatitude() {
      return latitude;
    }
  
  
    public void setLatitude(String latitude) {
      this.latitude = latitude;
    }
  
  
    public AlipayOfflineMarketShopCreateModel leadsId(String leadsId) {
      
      this.leadsId = leadsId;
      return this;
    }
  
     /**
     * （支付宝内部参数）leads的编号。
     * @return leadsId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2016060600077001000000301619", value = "（支付宝内部参数）leads的编号。")
  
    public String getLeadsId() {
      return leadsId;
    }
  
  
    public void setLeadsId(String leadsId) {
      this.leadsId = leadsId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel licence(String licence) {
      
      this.licence = licence;
      return this;
    }
  
     /**
     * 门店营业执照图片，各行业所需的证照资质参见&lt;a href&#x3D;\&quot;https://doc.open.alipay.com/doc2/detail.htm?treeId&#x3D;205&amp;articleId&#x3D;104497&amp;docType&#x3D;1\&quot;&gt;商户入驻要求&lt;/a&gt;。
     * @return licence
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "门店营业执照图片，各行业所需的证照资质参见<a href=\"https://doc.open.alipay.com/doc2/detail.htm?treeId=205&articleId=104497&docType=1\">商户入驻要求</a>。")
  
    public String getLicence() {
      return licence;
    }
  
  
    public void setLicence(String licence) {
      this.licence = licence;
    }
  
  
    public AlipayOfflineMarketShopCreateModel licenceCode(String licenceCode) {
      
      this.licenceCode = licenceCode;
      return this;
    }
  
     /**
     * 门店营业执照编号，只支持输入中文，英文和数字，营业执照信息与is_operating_online至少填一项。
     * @return licenceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "H001232", value = "门店营业执照编号，只支持输入中文，英文和数字，营业执照信息与is_operating_online至少填一项。")
  
    public String getLicenceCode() {
      return licenceCode;
    }
  
  
    public void setLicenceCode(String licenceCode) {
      this.licenceCode = licenceCode;
    }
  
  
    public AlipayOfflineMarketShopCreateModel licenceExpires(String licenceExpires) {
      
      this.licenceExpires = licenceExpires;
      return this;
    }
  
     /**
     * 营业执照过期时间。格式：2020-10-20或长期。严格按照格式填写。
     * @return licenceExpires
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2020-10-20", value = "营业执照过期时间。格式：2020-10-20或长期。严格按照格式填写。")
  
    public String getLicenceExpires() {
      return licenceExpires;
    }
  
  
    public void setLicenceExpires(String licenceExpires) {
      this.licenceExpires = licenceExpires;
    }
  
  
    public AlipayOfflineMarketShopCreateModel licenceName(String licenceName) {
      
      this.licenceName = licenceName;
      return this;
    }
  
     /**
     * 门店营业执照名称。
     * @return licenceName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "来伊份上海分公司", value = "门店营业执照名称。")
  
    public String getLicenceName() {
      return licenceName;
    }
  
  
    public void setLicenceName(String licenceName) {
      this.licenceName = licenceName;
    }
  
  
    public AlipayOfflineMarketShopCreateModel longitude(String longitude) {
      
      this.longitude = longitude;
      return this;
    }
  
     /**
     * 经度；最长15位字符（包括小数点）， 注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker
     * @return longitude
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "114.266418", value = "经度；最长15位字符（包括小数点）， 注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker")
  
    public String getLongitude() {
      return longitude;
    }
  
  
    public void setLongitude(String longitude) {
      this.longitude = longitude;
    }
  
  
    public AlipayOfflineMarketShopCreateModel mainImage(String mainImage) {
      
      this.mainImage = mainImage;
      return this;
    }
  
     /**
     * 门店首图，非常重要，推荐尺寸2000*1500。
     * @return mainImage
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "门店首图，非常重要，推荐尺寸2000*1500。")
  
    public String getMainImage() {
      return mainImage;
    }
  
  
    public void setMainImage(String mainImage) {
      this.mainImage = mainImage;
    }
  
  
    public AlipayOfflineMarketShopCreateModel mainShopName(String mainShopName) {
      
      this.mainShopName = mainShopName;
      return this;
    }
  
     /**
     * 主门店名  比如：肯德基；主店名里不要包含分店名，如“万塘路店”。主店名长度不能超过20个字符。
     * @return mainShopName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "海底捞", value = "主门店名  比如：肯德基；主店名里不要包含分店名，如“万塘路店”。主店名长度不能超过20个字符。")
  
    public String getMainShopName() {
      return mainShopName;
    }
  
  
    public void setMainShopName(String mainShopName) {
      this.mainShopName = mainShopName;
    }
  
  
    public AlipayOfflineMarketShopCreateModel noSmoking(String noSmoking) {
      
      this.noSmoking = noSmoking;
      return this;
    }
  
     /**
     * 是否有无烟区，T表示有无烟区，F表示没有无烟区，不传在客户端不展示。
     * @return noSmoking
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "是否有无烟区，T表示有无烟区，F表示没有无烟区，不传在客户端不展示。")
  
    public String getNoSmoking() {
      return noSmoking;
    }
  
  
    public void setNoSmoking(String noSmoking) {
      this.noSmoking = noSmoking;
    }
  
  
    public AlipayOfflineMarketShopCreateModel notifyMobile(String notifyMobile) {
      
      this.notifyMobile = notifyMobile;
      return this;
    }
  
     /**
     * 门店店长电话号码；用于接收门店状态变更通知，收款成功通知等通知消息， 不在客户端展示。
     * @return notifyMobile
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "13867498729", value = "门店店长电话号码；用于接收门店状态变更通知，收款成功通知等通知消息， 不在客户端展示。")
  
    public String getNotifyMobile() {
      return notifyMobile;
    }
  
  
    public void setNotifyMobile(String notifyMobile) {
      this.notifyMobile = notifyMobile;
    }
  
  
    public AlipayOfflineMarketShopCreateModel notifyUrl(String notifyUrl) {
      
      this.notifyUrl = notifyUrl;
      return this;
    }
  
     /**
     * 通知地址
     * @return notifyUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "通知地址")
  
    public String getNotifyUrl() {
      return notifyUrl;
    }
  
  
    public void setNotifyUrl(String notifyUrl) {
      this.notifyUrl = notifyUrl;
    }
  
  
    public AlipayOfflineMarketShopCreateModel onlineImage(String onlineImage) {
      
      this.onlineImage = onlineImage;
      return this;
    }
  
     /**
     * 废弃字段，请使用online_url字段替代。
     * @return onlineImage
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "废弃字段，请使用online_url字段替代。")
  
    public String getOnlineImage() {
      return onlineImage;
    }
  
  
    public void setOnlineImage(String onlineImage) {
      this.onlineImage = onlineImage;
    }
  
  
    public AlipayOfflineMarketShopCreateModel onlineUrl(String onlineUrl) {
      
      this.onlineUrl = onlineUrl;
      return this;
    }
  
     /**
     * 其他平台开店的店铺链接url，多个url使用英文逗号隔开,isv迁移到新接口使用此字段，与is_operating_online&#x3D;T配套使用。
     * @return onlineUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "http://www.******.com/shop/21831830", value = "其他平台开店的店铺链接url，多个url使用英文逗号隔开,isv迁移到新接口使用此字段，与is_operating_online=T配套使用。")
  
    public String getOnlineUrl() {
      return onlineUrl;
    }
  
  
    public void setOnlineUrl(String onlineUrl) {
      this.onlineUrl = onlineUrl;
    }
  
  
    public AlipayOfflineMarketShopCreateModel opRole(String opRole) {
      
      this.opRole = opRole;
      return this;
    }
  
     /**
     * 表示以系统集成商的身份开店，开放平台现在统一传入ISV。
     * @return opRole
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "ISV", value = "表示以系统集成商的身份开店，开放平台现在统一传入ISV。")
  
    public String getOpRole() {
      return opRole;
    }
  
  
    public void setOpRole(String opRole) {
      this.opRole = opRole;
    }
  
  
    public AlipayOfflineMarketShopCreateModel operateNotifyUrl(String operateNotifyUrl) {
      
      this.operateNotifyUrl = operateNotifyUrl;
      return this;
    }
  
     /**
     * 当商户的门店审核状态发生变化时，会向该地址推送消息。
     * @return operateNotifyUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "http://abc.com", value = "当商户的门店审核状态发生变化时，会向该地址推送消息。")
  
    public String getOperateNotifyUrl() {
      return operateNotifyUrl;
    }
  
  
    public void setOperateNotifyUrl(String operateNotifyUrl) {
      this.operateNotifyUrl = operateNotifyUrl;
    }
  
  
    public AlipayOfflineMarketShopCreateModel otherAuthorization(String otherAuthorization) {
      
      this.otherAuthorization = otherAuthorization;
      return this;
    }
  
     /**
     * 其他资质。用于上传营业证照、许可证照外的其他资质，除已上传许可证外的其他许可证也可以在该字段上传。
     * @return otherAuthorization
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC,1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC", value = "其他资质。用于上传营业证照、许可证照外的其他资质，除已上传许可证外的其他许可证也可以在该字段上传。")
  
    public String getOtherAuthorization() {
      return otherAuthorization;
    }
  
  
    public void setOtherAuthorization(String otherAuthorization) {
      this.otherAuthorization = otherAuthorization;
    }
  
  
    public AlipayOfflineMarketShopCreateModel parking(String parking) {
      
      this.parking = parking;
      return this;
    }
  
     /**
     * 门店是否支持停车，T表示支持，F表示不支持，不传在客户端不作展示。
     * @return parking
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "F", value = "门店是否支持停车，T表示支持，F表示不支持，不传在客户端不作展示。")
  
    public String getParking() {
      return parking;
    }
  
  
    public void setParking(String parking) {
      this.parking = parking;
    }
  
  
    public AlipayOfflineMarketShopCreateModel partnerId(String partnerId) {
      
      this.partnerId = partnerId;
      return this;
    }
  
     /**
     * （支付宝内部参数）服务商要操作的商户PID。
     * @return partnerId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088001969784001", value = "（支付宝内部参数）服务商要操作的商户PID。")
  
    public String getPartnerId() {
      return partnerId;
    }
  
  
    public void setPartnerId(String partnerId) {
      this.partnerId = partnerId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel payType(String payType) {
      
      this.payType = payType;
      return this;
    }
  
     /**
     * （支付宝内部参数）付款方式：code_scanned_pay：付款码   online_pay：在线买单。ISV不可以指定此字段，ISV泛行业开店默认为在线买单，云纵开店可以指定支付方式。
     * @return payType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "code_scanned_pay", value = "（支付宝内部参数）付款方式：code_scanned_pay：付款码   online_pay：在线买单。ISV不可以指定此字段，ISV泛行业开店默认为在线买单，云纵开店可以指定支付方式。")
  
    public String getPayType() {
      return payType;
    }
  
  
    public void setPayType(String payType) {
      this.payType = payType;
    }
  
  
    public AlipayOfflineMarketShopCreateModel provinceCode(String provinceCode) {
      
      this.provinceCode = provinceCode;
      return this;
    }
  
     /**
     * 省份编码，国标码，详见国家统计局数据 &lt;a href&#x3D;\&quot;https://gw.alipayobjects.com/os/basement_prod/92d874c4-39a9-4977-b710-d55dad374b7f.csv\&quot;&gt;点此下载&lt;/a&gt;。
     * @return provinceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "110000", value = "省份编码，国标码，详见国家统计局数据 <a href=\"https://gw.alipayobjects.com/os/basement_prod/92d874c4-39a9-4977-b710-d55dad374b7f.csv\">点此下载</a>。")
  
    public String getProvinceCode() {
      return provinceCode;
    }
  
  
    public void setProvinceCode(String provinceCode) {
      this.provinceCode = provinceCode;
    }
  
  
    public AlipayOfflineMarketShopCreateModel refApplyId(String refApplyId) {
      
      this.refApplyId = refApplyId;
      return this;
    }
  
     /**
     * （支付宝内部参数）leads开店重试支付宝流水ID。
     * @return refApplyId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "201602270011030000001", value = "（支付宝内部参数）leads开店重试支付宝流水ID。")
  
    public String getRefApplyId() {
      return refApplyId;
    }
  
  
    public void setRefApplyId(String refApplyId) {
      this.refApplyId = refApplyId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel requestId(String requestId) {
      
      this.requestId = requestId;
      return this;
    }
  
     /**
     * 支持英文字母和数字，由开发者自行定义（不允许重复），在门店notify消息中也会带有该参数，以此标明本次notify消息是对哪个请求的回应。
     * @return requestId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2015123235324534", value = "支持英文字母和数字，由开发者自行定义（不允许重复），在门店notify消息中也会带有该参数，以此标明本次notify消息是对哪个请求的回应。")
  
    public String getRequestId() {
      return requestId;
    }
  
  
    public void setRequestId(String requestId) {
      this.requestId = requestId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel storeId(String storeId) {
      
      this.storeId = storeId;
      return this;
    }
  
     /**
     * 外部门店编号；最长32位字符，该编号将作为收单接口的入参， 请开发者自行确保其唯一性。
     * @return storeId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "hz001", value = "外部门店编号；最长32位字符，该编号将作为收单接口的入参， 请开发者自行确保其唯一性。")
  
    public String getStoreId() {
      return storeId;
    }
  
  
    public void setStoreId(String storeId) {
      this.storeId = storeId;
    }
  
  
    public AlipayOfflineMarketShopCreateModel valueAdded(String valueAdded) {
      
      this.valueAdded = valueAdded;
      return this;
    }
  
     /**
     * 门店其他的服务，门店与用户线下兑现。
     * @return valueAdded
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "免费茶水、免费糖果", value = "门店其他的服务，门店与用户线下兑现。")
  
    public String getValueAdded() {
      return valueAdded;
    }
  
  
    public void setValueAdded(String valueAdded) {
      this.valueAdded = valueAdded;
    }
  
  
    public AlipayOfflineMarketShopCreateModel version(String version) {
      
      this.version = version;
      return this;
    }
  
     /**
     * 废弃字段，使用biz_version字段替代。
     * @return version
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2.0", value = "废弃字段，使用biz_version字段替代。")
  
    public String getVersion() {
      return version;
    }
  
  
    public void setVersion(String version) {
      this.version = version;
    }
  
  
    public AlipayOfflineMarketShopCreateModel wifi(String wifi) {
      
      this.wifi = wifi;
      return this;
    }
  
     /**
     * 门店是否支持WIFI，T表示支持，F表示不支持，不传在客户端不作展示。
     * @return wifi
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "门店是否支持WIFI，T表示支持，F表示不支持，不传在客户端不作展示。")
  
    public String getWifi() {
      return wifi;
    }
  
  
    public void setWifi(String wifi) {
      this.wifi = wifi;
    }
  
    /**
     * A container for additional, undeclared properties.
     * This is a holder for any undeclared properties as specified with
     * the 'additionalProperties' keyword in the OAS document.
     */
    private Map<String, Object> additionalProperties;
  
    /**
     * Set the additional (undeclared) property with the specified name and value.
     * If the property does not already exist, create it otherwise replace it.
     *
     * @param key name of the property
     * @param value value of the property
     * @return the AlipayOfflineMarketShopCreateModel instance itself
     */
    public AlipayOfflineMarketShopCreateModel putAdditionalProperty(String key, Object value) {
      if (this.additionalProperties == null) {
          this.additionalProperties = new HashMap<String, Object>();
      }
      this.additionalProperties.put(key, value);
      return this;
    }
  
    /**
     * Return the additional (undeclared) property.
     *
     * @return a map of objects
     */
    public Map<String, Object> getAdditionalProperties() {
      return additionalProperties;
    }
  
    /**
     * Return the additional (undeclared) property with the specified name.
     *
     * @param key name of the property
     * @return an object
     */
    public Object getAdditionalProperty(String key) {
      if (this.additionalProperties == null) {
          return null;
      }
      return this.additionalProperties.get(key);
    }
  
  
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      AlipayOfflineMarketShopCreateModel alipayOfflineMarketShopCreateModel = (AlipayOfflineMarketShopCreateModel) o;
      return Objects.equals(this.address, alipayOfflineMarketShopCreateModel.address) &&
          Objects.equals(this.auditImages, alipayOfflineMarketShopCreateModel.auditImages) &&
          Objects.equals(this.authLetter, alipayOfflineMarketShopCreateModel.authLetter) &&
          Objects.equals(this.bizVersion, alipayOfflineMarketShopCreateModel.bizVersion) &&
          Objects.equals(this.box, alipayOfflineMarketShopCreateModel.box) &&
          Objects.equals(this.branchShopName, alipayOfflineMarketShopCreateModel.branchShopName) &&
          Objects.equals(this.brandLogo, alipayOfflineMarketShopCreateModel.brandLogo) &&
          Objects.equals(this.brandName, alipayOfflineMarketShopCreateModel.brandName) &&
          Objects.equals(this.businessCertificate, alipayOfflineMarketShopCreateModel.businessCertificate) &&
          Objects.equals(this.businessCertificateExpires, alipayOfflineMarketShopCreateModel.businessCertificateExpires) &&
          Objects.equals(this.businessTime, alipayOfflineMarketShopCreateModel.businessTime) &&
          Objects.equals(this.categoryId, alipayOfflineMarketShopCreateModel.categoryId) &&
          Objects.equals(this.cityCode, alipayOfflineMarketShopCreateModel.cityCode) &&
          Objects.equals(this.contactNumber, alipayOfflineMarketShopCreateModel.contactNumber) &&
          Objects.equals(this.creator, alipayOfflineMarketShopCreateModel.creator) &&
          Objects.equals(this.districtCode, alipayOfflineMarketShopCreateModel.districtCode) &&
          Objects.equals(this.enterpriseLogonId, alipayOfflineMarketShopCreateModel.enterpriseLogonId) &&
          Objects.equals(this.enterpriseName, alipayOfflineMarketShopCreateModel.enterpriseName) &&
          Objects.equals(this.implementId, alipayOfflineMarketShopCreateModel.implementId) &&
          Objects.equals(this.isOperatingOnline, alipayOfflineMarketShopCreateModel.isOperatingOnline) &&
          Objects.equals(this.isvUid, alipayOfflineMarketShopCreateModel.isvUid) &&
          Objects.equals(this.latitude, alipayOfflineMarketShopCreateModel.latitude) &&
          Objects.equals(this.leadsId, alipayOfflineMarketShopCreateModel.leadsId) &&
          Objects.equals(this.licence, alipayOfflineMarketShopCreateModel.licence) &&
          Objects.equals(this.licenceCode, alipayOfflineMarketShopCreateModel.licenceCode) &&
          Objects.equals(this.licenceExpires, alipayOfflineMarketShopCreateModel.licenceExpires) &&
          Objects.equals(this.licenceName, alipayOfflineMarketShopCreateModel.licenceName) &&
          Objects.equals(this.longitude, alipayOfflineMarketShopCreateModel.longitude) &&
          Objects.equals(this.mainImage, alipayOfflineMarketShopCreateModel.mainImage) &&
          Objects.equals(this.mainShopName, alipayOfflineMarketShopCreateModel.mainShopName) &&
          Objects.equals(this.noSmoking, alipayOfflineMarketShopCreateModel.noSmoking) &&
          Objects.equals(this.notifyMobile, alipayOfflineMarketShopCreateModel.notifyMobile) &&
          Objects.equals(this.notifyUrl, alipayOfflineMarketShopCreateModel.notifyUrl) &&
          Objects.equals(this.onlineImage, alipayOfflineMarketShopCreateModel.onlineImage) &&
          Objects.equals(this.onlineUrl, alipayOfflineMarketShopCreateModel.onlineUrl) &&
          Objects.equals(this.opRole, alipayOfflineMarketShopCreateModel.opRole) &&
          Objects.equals(this.operateNotifyUrl, alipayOfflineMarketShopCreateModel.operateNotifyUrl) &&
          Objects.equals(this.otherAuthorization, alipayOfflineMarketShopCreateModel.otherAuthorization) &&
          Objects.equals(this.parking, alipayOfflineMarketShopCreateModel.parking) &&
          Objects.equals(this.partnerId, alipayOfflineMarketShopCreateModel.partnerId) &&
          Objects.equals(this.payType, alipayOfflineMarketShopCreateModel.payType) &&
          Objects.equals(this.provinceCode, alipayOfflineMarketShopCreateModel.provinceCode) &&
          Objects.equals(this.refApplyId, alipayOfflineMarketShopCreateModel.refApplyId) &&
          Objects.equals(this.requestId, alipayOfflineMarketShopCreateModel.requestId) &&
          Objects.equals(this.storeId, alipayOfflineMarketShopCreateModel.storeId) &&
          Objects.equals(this.valueAdded, alipayOfflineMarketShopCreateModel.valueAdded) &&
          Objects.equals(this.version, alipayOfflineMarketShopCreateModel.version) &&
          Objects.equals(this.wifi, alipayOfflineMarketShopCreateModel.wifi)&&
          Objects.equals(this.additionalProperties, alipayOfflineMarketShopCreateModel.additionalProperties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(address, auditImages, authLetter, bizVersion, box, branchShopName, brandLogo, brandName, businessCertificate, businessCertificateExpires, businessTime, categoryId, cityCode, contactNumber, creator, districtCode, enterpriseLogonId, enterpriseName, implementId, isOperatingOnline, isvUid, latitude, leadsId, licence, licenceCode, licenceExpires, licenceName, longitude, mainImage, mainShopName, noSmoking, notifyMobile, notifyUrl, onlineImage, onlineUrl, opRole, operateNotifyUrl, otherAuthorization, parking, partnerId, payType, provinceCode, refApplyId, requestId, storeId, valueAdded, version, wifi, additionalProperties);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class AlipayOfflineMarketShopCreateModel {\n");
      sb.append("    address: ").append(toIndentedString(address)).append("\n");
      sb.append("    auditImages: ").append(toIndentedString(auditImages)).append("\n");
      sb.append("    authLetter: ").append(toIndentedString(authLetter)).append("\n");
      sb.append("    bizVersion: ").append(toIndentedString(bizVersion)).append("\n");
      sb.append("    box: ").append(toIndentedString(box)).append("\n");
      sb.append("    branchShopName: ").append(toIndentedString(branchShopName)).append("\n");
      sb.append("    brandLogo: ").append(toIndentedString(brandLogo)).append("\n");
      sb.append("    brandName: ").append(toIndentedString(brandName)).append("\n");
      sb.append("    businessCertificate: ").append(toIndentedString(businessCertificate)).append("\n");
      sb.append("    businessCertificateExpires: ").append(toIndentedString(businessCertificateExpires)).append("\n");
      sb.append("    businessTime: ").append(toIndentedString(businessTime)).append("\n");
      sb.append("    categoryId: ").append(toIndentedString(categoryId)).append("\n");
      sb.append("    cityCode: ").append(toIndentedString(cityCode)).append("\n");
      sb.append("    contactNumber: ").append(toIndentedString(contactNumber)).append("\n");
      sb.append("    creator: ").append(toIndentedString(creator)).append("\n");
      sb.append("    districtCode: ").append(toIndentedString(districtCode)).append("\n");
      sb.append("    enterpriseLogonId: ").append(toIndentedString(enterpriseLogonId)).append("\n");
      sb.append("    enterpriseName: ").append(toIndentedString(enterpriseName)).append("\n");
      sb.append("    implementId: ").append(toIndentedString(implementId)).append("\n");
      sb.append("    isOperatingOnline: ").append(toIndentedString(isOperatingOnline)).append("\n");
      sb.append("    isvUid: ").append(toIndentedString(isvUid)).append("\n");
      sb.append("    latitude: ").append(toIndentedString(latitude)).append("\n");
      sb.append("    leadsId: ").append(toIndentedString(leadsId)).append("\n");
      sb.append("    licence: ").append(toIndentedString(licence)).append("\n");
      sb.append("    licenceCode: ").append(toIndentedString(licenceCode)).append("\n");
      sb.append("    licenceExpires: ").append(toIndentedString(licenceExpires)).append("\n");
      sb.append("    licenceName: ").append(toIndentedString(licenceName)).append("\n");
      sb.append("    longitude: ").append(toIndentedString(longitude)).append("\n");
      sb.append("    mainImage: ").append(toIndentedString(mainImage)).append("\n");
      sb.append("    mainShopName: ").append(toIndentedString(mainShopName)).append("\n");
      sb.append("    noSmoking: ").append(toIndentedString(noSmoking)).append("\n");
      sb.append("    notifyMobile: ").append(toIndentedString(notifyMobile)).append("\n");
      sb.append("    notifyUrl: ").append(toIndentedString(notifyUrl)).append("\n");
      sb.append("    onlineImage: ").append(toIndentedString(onlineImage)).append("\n");
      sb.append("    onlineUrl: ").append(toIndentedString(onlineUrl)).append("\n");
      sb.append("    opRole: ").append(toIndentedString(opRole)).append("\n");
      sb.append("    operateNotifyUrl: ").append(toIndentedString(operateNotifyUrl)).append("\n");
      sb.append("    otherAuthorization: ").append(toIndentedString(otherAuthorization)).append("\n");
      sb.append("    parking: ").append(toIndentedString(parking)).append("\n");
      sb.append("    partnerId: ").append(toIndentedString(partnerId)).append("\n");
      sb.append("    payType: ").append(toIndentedString(payType)).append("\n");
      sb.append("    provinceCode: ").append(toIndentedString(provinceCode)).append("\n");
      sb.append("    refApplyId: ").append(toIndentedString(refApplyId)).append("\n");
      sb.append("    requestId: ").append(toIndentedString(requestId)).append("\n");
      sb.append("    storeId: ").append(toIndentedString(storeId)).append("\n");
      sb.append("    valueAdded: ").append(toIndentedString(valueAdded)).append("\n");
      sb.append("    version: ").append(toIndentedString(version)).append("\n");
      sb.append("    wifi: ").append(toIndentedString(wifi)).append("\n");
      sb.append("    additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
      sb.append("}");
      return sb.toString();
    }
  
    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(Object o) {
      if (o == null) {
        return "null";
      }
      return o.toString().replace("\n", "\n    ");
    }
  
  
    public static HashSet<String> openapiFields;
    public static HashSet<String> openapiRequiredFields;
  
    static {
      // a set of all properties/fields (JSON key names)
      openapiFields = new HashSet<String>();
      openapiFields.add("address");
      openapiFields.add("audit_images");
      openapiFields.add("auth_letter");
      openapiFields.add("biz_version");
      openapiFields.add("box");
      openapiFields.add("branch_shop_name");
      openapiFields.add("brand_logo");
      openapiFields.add("brand_name");
      openapiFields.add("business_certificate");
      openapiFields.add("business_certificate_expires");
      openapiFields.add("business_time");
      openapiFields.add("category_id");
      openapiFields.add("city_code");
      openapiFields.add("contact_number");
      openapiFields.add("creator");
      openapiFields.add("district_code");
      openapiFields.add("enterprise_logon_id");
      openapiFields.add("enterprise_name");
      openapiFields.add("implement_id");
      openapiFields.add("is_operating_online");
      openapiFields.add("isv_uid");
      openapiFields.add("latitude");
      openapiFields.add("leads_id");
      openapiFields.add("licence");
      openapiFields.add("licence_code");
      openapiFields.add("licence_expires");
      openapiFields.add("licence_name");
      openapiFields.add("longitude");
      openapiFields.add("main_image");
      openapiFields.add("main_shop_name");
      openapiFields.add("no_smoking");
      openapiFields.add("notify_mobile");
      openapiFields.add("notify_url");
      openapiFields.add("online_image");
      openapiFields.add("online_url");
      openapiFields.add("op_role");
      openapiFields.add("operate_notify_url");
      openapiFields.add("other_authorization");
      openapiFields.add("parking");
      openapiFields.add("partner_id");
      openapiFields.add("pay_type");
      openapiFields.add("province_code");
      openapiFields.add("ref_apply_id");
      openapiFields.add("request_id");
      openapiFields.add("store_id");
      openapiFields.add("value_added");
      openapiFields.add("version");
      openapiFields.add("wifi");
  
      // a set of required properties/fields (JSON key names)
      openapiRequiredFields = new HashSet<String>();
    }
  
   /**
    * Validates the JSON Object and throws an exception if issues found
    *
    * @param jsonObj JSON Object
    * @throws IOException if the JSON Object is invalid with respect to AlipayOfflineMarketShopCreateModel
    */
    public static void validateJsonObject(JsonObject jsonObj) throws IOException {
        if (jsonObj == null) {
          if (AlipayOfflineMarketShopCreateModel.openapiRequiredFields.isEmpty()) {
            return;
          } else { // has required fields
            throw new IllegalArgumentException(String.format("The required field(s) %s in AlipayOfflineMarketShopCreateModel is not found in the empty JSON string", AlipayOfflineMarketShopCreateModel.openapiRequiredFields.toString()));
          }
        }
        if (jsonObj.get("address") != null && !jsonObj.get("address").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `address` to be a primitive type in the JSON string but got `%s`", jsonObj.get("address").toString()));
        }
        if (jsonObj.get("audit_images") != null && !jsonObj.get("audit_images").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `audit_images` to be a primitive type in the JSON string but got `%s`", jsonObj.get("audit_images").toString()));
        }
        if (jsonObj.get("auth_letter") != null && !jsonObj.get("auth_letter").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `auth_letter` to be a primitive type in the JSON string but got `%s`", jsonObj.get("auth_letter").toString()));
        }
        if (jsonObj.get("biz_version") != null && !jsonObj.get("biz_version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `biz_version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("biz_version").toString()));
        }
        if (jsonObj.get("box") != null && !jsonObj.get("box").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `box` to be a primitive type in the JSON string but got `%s`", jsonObj.get("box").toString()));
        }
        if (jsonObj.get("branch_shop_name") != null && !jsonObj.get("branch_shop_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `branch_shop_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("branch_shop_name").toString()));
        }
        if (jsonObj.get("brand_logo") != null && !jsonObj.get("brand_logo").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `brand_logo` to be a primitive type in the JSON string but got `%s`", jsonObj.get("brand_logo").toString()));
        }
        if (jsonObj.get("brand_name") != null && !jsonObj.get("brand_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `brand_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("brand_name").toString()));
        }
        if (jsonObj.get("business_certificate") != null && !jsonObj.get("business_certificate").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `business_certificate` to be a primitive type in the JSON string but got `%s`", jsonObj.get("business_certificate").toString()));
        }
        if (jsonObj.get("business_certificate_expires") != null && !jsonObj.get("business_certificate_expires").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `business_certificate_expires` to be a primitive type in the JSON string but got `%s`", jsonObj.get("business_certificate_expires").toString()));
        }
        if (jsonObj.get("business_time") != null && !jsonObj.get("business_time").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `business_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("business_time").toString()));
        }
        if (jsonObj.get("category_id") != null && !jsonObj.get("category_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `category_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("category_id").toString()));
        }
        if (jsonObj.get("city_code") != null && !jsonObj.get("city_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `city_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("city_code").toString()));
        }
        if (jsonObj.get("contact_number") != null && !jsonObj.get("contact_number").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `contact_number` to be a primitive type in the JSON string but got `%s`", jsonObj.get("contact_number").toString()));
        }
        if (jsonObj.get("creator") != null && !jsonObj.get("creator").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `creator` to be a primitive type in the JSON string but got `%s`", jsonObj.get("creator").toString()));
        }
        if (jsonObj.get("district_code") != null && !jsonObj.get("district_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `district_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("district_code").toString()));
        }
        if (jsonObj.get("enterprise_logon_id") != null && !jsonObj.get("enterprise_logon_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `enterprise_logon_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("enterprise_logon_id").toString()));
        }
        if (jsonObj.get("enterprise_name") != null && !jsonObj.get("enterprise_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `enterprise_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("enterprise_name").toString()));
        }
        if (jsonObj.get("implement_id") != null && !jsonObj.get("implement_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `implement_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("implement_id").toString()));
        }
        if (jsonObj.get("is_operating_online") != null && !jsonObj.get("is_operating_online").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `is_operating_online` to be a primitive type in the JSON string but got `%s`", jsonObj.get("is_operating_online").toString()));
        }
        if (jsonObj.get("isv_uid") != null && !jsonObj.get("isv_uid").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `isv_uid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("isv_uid").toString()));
        }
        if (jsonObj.get("latitude") != null && !jsonObj.get("latitude").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `latitude` to be a primitive type in the JSON string but got `%s`", jsonObj.get("latitude").toString()));
        }
        if (jsonObj.get("leads_id") != null && !jsonObj.get("leads_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `leads_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("leads_id").toString()));
        }
        if (jsonObj.get("licence") != null && !jsonObj.get("licence").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `licence` to be a primitive type in the JSON string but got `%s`", jsonObj.get("licence").toString()));
        }
        if (jsonObj.get("licence_code") != null && !jsonObj.get("licence_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `licence_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("licence_code").toString()));
        }
        if (jsonObj.get("licence_expires") != null && !jsonObj.get("licence_expires").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `licence_expires` to be a primitive type in the JSON string but got `%s`", jsonObj.get("licence_expires").toString()));
        }
        if (jsonObj.get("licence_name") != null && !jsonObj.get("licence_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `licence_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("licence_name").toString()));
        }
        if (jsonObj.get("longitude") != null && !jsonObj.get("longitude").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `longitude` to be a primitive type in the JSON string but got `%s`", jsonObj.get("longitude").toString()));
        }
        if (jsonObj.get("main_image") != null && !jsonObj.get("main_image").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `main_image` to be a primitive type in the JSON string but got `%s`", jsonObj.get("main_image").toString()));
        }
        if (jsonObj.get("main_shop_name") != null && !jsonObj.get("main_shop_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `main_shop_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("main_shop_name").toString()));
        }
        if (jsonObj.get("no_smoking") != null && !jsonObj.get("no_smoking").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `no_smoking` to be a primitive type in the JSON string but got `%s`", jsonObj.get("no_smoking").toString()));
        }
        if (jsonObj.get("notify_mobile") != null && !jsonObj.get("notify_mobile").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `notify_mobile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notify_mobile").toString()));
        }
        if (jsonObj.get("notify_url") != null && !jsonObj.get("notify_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `notify_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("notify_url").toString()));
        }
        if (jsonObj.get("online_image") != null && !jsonObj.get("online_image").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `online_image` to be a primitive type in the JSON string but got `%s`", jsonObj.get("online_image").toString()));
        }
        if (jsonObj.get("online_url") != null && !jsonObj.get("online_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `online_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("online_url").toString()));
        }
        if (jsonObj.get("op_role") != null && !jsonObj.get("op_role").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `op_role` to be a primitive type in the JSON string but got `%s`", jsonObj.get("op_role").toString()));
        }
        if (jsonObj.get("operate_notify_url") != null && !jsonObj.get("operate_notify_url").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `operate_notify_url` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operate_notify_url").toString()));
        }
        if (jsonObj.get("other_authorization") != null && !jsonObj.get("other_authorization").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `other_authorization` to be a primitive type in the JSON string but got `%s`", jsonObj.get("other_authorization").toString()));
        }
        if (jsonObj.get("parking") != null && !jsonObj.get("parking").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `parking` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking").toString()));
        }
        if (jsonObj.get("partner_id") != null && !jsonObj.get("partner_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `partner_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("partner_id").toString()));
        }
        if (jsonObj.get("pay_type") != null && !jsonObj.get("pay_type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `pay_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pay_type").toString()));
        }
        if (jsonObj.get("province_code") != null && !jsonObj.get("province_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `province_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("province_code").toString()));
        }
        if (jsonObj.get("ref_apply_id") != null && !jsonObj.get("ref_apply_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `ref_apply_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ref_apply_id").toString()));
        }
        if (jsonObj.get("request_id") != null && !jsonObj.get("request_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `request_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("request_id").toString()));
        }
        if (jsonObj.get("store_id") != null && !jsonObj.get("store_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `store_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("store_id").toString()));
        }
        if (jsonObj.get("value_added") != null && !jsonObj.get("value_added").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `value_added` to be a primitive type in the JSON string but got `%s`", jsonObj.get("value_added").toString()));
        }
        if (jsonObj.get("version") != null && !jsonObj.get("version").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `version` to be a primitive type in the JSON string but got `%s`", jsonObj.get("version").toString()));
        }
        if (jsonObj.get("wifi") != null && !jsonObj.get("wifi").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `wifi` to be a primitive type in the JSON string but got `%s`", jsonObj.get("wifi").toString()));
        }
    }
  
    public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
      @SuppressWarnings("unchecked")
      @Override
      public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
         if (!AlipayOfflineMarketShopCreateModel.class.isAssignableFrom(type.getRawType())) {
           return null; // this class only serializes 'AlipayOfflineMarketShopCreateModel' and its subtypes
         }
         final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
         final TypeAdapter<AlipayOfflineMarketShopCreateModel> thisAdapter
                          = gson.getDelegateAdapter(this, TypeToken.get(AlipayOfflineMarketShopCreateModel.class));
  
         return (TypeAdapter<T>) new TypeAdapter<AlipayOfflineMarketShopCreateModel>() {
             @Override
             public void write(JsonWriter out, AlipayOfflineMarketShopCreateModel value) throws IOException {
               JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
               obj.remove("additionalProperties");
               // serialize additonal properties
               if (value.getAdditionalProperties() != null) {
                 for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
                   if (entry.getValue() instanceof String)
                     obj.addProperty(entry.getKey(), (String) entry.getValue());
                   else if (entry.getValue() instanceof Number)
                     obj.addProperty(entry.getKey(), (Number) entry.getValue());
                   else if (entry.getValue() instanceof Boolean)
                     obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
                   else if (entry.getValue() instanceof Character)
                     obj.addProperty(entry.getKey(), (Character) entry.getValue());
                   else {
                     obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject());
                   }
                 }
               }
               elementAdapter.write(out, obj);
             }
  
             @Override
             public AlipayOfflineMarketShopCreateModel read(JsonReader in) throws IOException {
               JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
               validateJsonObject(jsonObj);
               // store additional fields in the deserialized instance
               AlipayOfflineMarketShopCreateModel instance = thisAdapter.fromJsonTree(jsonObj);
               for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
                 if (!openapiFields.contains(entry.getKey())) {
                   if (entry.getValue().isJsonPrimitive()) { // primitive type
                     if (entry.getValue().getAsJsonPrimitive().isString())
                       instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
                     else if (entry.getValue().getAsJsonPrimitive().isNumber())
                       instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
                     else if (entry.getValue().getAsJsonPrimitive().isBoolean())
                       instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
                     else
                       throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
                   } else { // non-primitive type
                     instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
                   }
                 }
               }
               return instance;
             }
  
         }.nullSafe();
      }
    }
  
   /**
    * Create an instance of AlipayOfflineMarketShopCreateModel given an JSON string
    *
    * @param jsonString JSON string
    * @return An instance of AlipayOfflineMarketShopCreateModel
    * @throws IOException if the JSON string is invalid with respect to AlipayOfflineMarketShopCreateModel
    */
    public static AlipayOfflineMarketShopCreateModel fromJson(String jsonString) throws IOException {
      return JSON.getGson().fromJson(jsonString, AlipayOfflineMarketShopCreateModel.class);
    }
  
   /**
    * Convert an instance of AlipayOfflineMarketShopCreateModel to an JSON string
    *
    * @return JSON string
    */
    public String toJson() {
      return JSON.getGson().toJson(this);
    }
  }
  
  