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;
  
  /**
   * AlipayOfflineMarketShopModifyModel
   */
  @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
  public class AlipayOfflineMarketShopModifyModel {
    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_AVG_PRICE = "avg_price";
    @SerializedName(SERIALIZED_NAME_AVG_PRICE)
    private String avgPrice;
  
    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_DISTRICT_CODE = "district_code";
    @SerializedName(SERIALIZED_NAME_DISTRICT_CODE)
    private String districtCode;
  
    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_IS_SHOW = "is_show";
    @SerializedName(SERIALIZED_NAME_IS_SHOW)
    private String isShow;
  
    public static final String SERIALIZED_NAME_LATITUDE = "latitude";
    @SerializedName(SERIALIZED_NAME_LATITUDE)
    private String latitude;
  
    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_ID = "op_id";
    @SerializedName(SERIALIZED_NAME_OP_ID)
    private String opId;
  
    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_REQUEST_ID = "request_id";
    @SerializedName(SERIALIZED_NAME_REQUEST_ID)
    private String requestId;
  
    public static final String SERIALIZED_NAME_SHOP_ID = "shop_id";
    @SerializedName(SERIALIZED_NAME_SHOP_ID)
    private String shopId;
  
    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 AlipayOfflineMarketShopModifyModel() { 
    }
  
    public AlipayOfflineMarketShopModifyModel address(String address) {
      
      this.address = address;
      return this;
    }
  
     /**
     * 门店详细地址，地址字符长度在4-50个字符。门店详细地址，格式（不含省市区）：例1：道路+门牌号，“人民东路18号”；例2：道路+门牌号+标志性建筑+楼层；注：门店详细地址按规范格式填写地址，以免影响门店搜索及活动报名
     * @return address
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "万塘路18号黄龙时代广场", value = "门店详细地址，地址字符长度在4-50个字符。门店详细地址，格式（不含省市区）：例1：道路+门牌号，“人民东路18号”；例2：道路+门牌号+标志性建筑+楼层；注：门店详细地址按规范格式填写地址，以免影响门店搜索及活动报名")
  
    public String getAddress() {
      return address;
    }
  
  
    public void setAddress(String address) {
      this.address = address;
    }
  
  
    public AlipayOfflineMarketShopModifyModel auditImages(String auditImages) {
      
      this.auditImages = auditImages;
      return this;
    }
  
     /**
     * 门店审核时需要的图片; 至少包含一张门头照片，两张内景照片，必须反映真实的门店情况，审核才能够通过， 多个以英文逗号分隔。
     * @return auditImages
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "02hkCZKaRgmLyirx4If6nAAAACMAAQED", value = "门店审核时需要的图片; 至少包含一张门头照片，两张内景照片，必须反映真实的门店情况，审核才能够通过， 多个以英文逗号分隔。")
  
    public String getAuditImages() {
      return auditImages;
    }
  
  
    public void setAuditImages(String auditImages) {
      this.auditImages = auditImages;
    }
  
  
    public AlipayOfflineMarketShopModifyModel authLetter(String authLetter) {
      
      this.authLetter = authLetter;
      return this;
    }
  
     /**
     * 门店授权函。
     * @return authLetter
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", value = "门店授权函。")
  
    public String getAuthLetter() {
      return authLetter;
    }
  
  
    public void setAuthLetter(String authLetter) {
      this.authLetter = authLetter;
    }
  
  
    public AlipayOfflineMarketShopModifyModel avgPrice(String avgPrice) {
      
      this.avgPrice = avgPrice;
      return this;
    }
  
     /**
     * 人均消费价格，最少1元，最大不超过99999元，请按实际情况填写，单位元。
     * @return avgPrice
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "56.73", value = "人均消费价格，最少1元，最大不超过99999元，请按实际情况填写，单位元。")
  
    public String getAvgPrice() {
      return avgPrice;
    }
  
  
    public void setAvgPrice(String avgPrice) {
      this.avgPrice = avgPrice;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel box(String box) {
      
      this.box = box;
      return this;
    }
  
     /**
     * 包厢支持，T表示有包厢，F表示无包厢；不传值默认F。
     * @return box
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "包厢支持，T表示有包厢，F表示无包厢；不传值默认F。")
  
    public String getBox() {
      return box;
    }
  
  
    public void setBox(String box) {
      this.box = box;
    }
  
  
    public AlipayOfflineMarketShopModifyModel branchShopName(String branchShopName) {
      
      this.branchShopName = branchShopName;
      return this;
    }
  
     /**
     * 分店名称，比如：万塘路店，与主门店名合并在客户端显示为：肯德基(万塘路店)。分店名长度需在2~20个字符之间。
     * @return branchShopName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "万塘路店", value = "分店名称，比如：万塘路店，与主门店名合并在客户端显示为：肯德基(万塘路店)。分店名长度需在2~20个字符之间。")
  
    public String getBranchShopName() {
      return branchShopName;
    }
  
  
    public void setBranchShopName(String branchShopName) {
      this.branchShopName = branchShopName;
    }
  
  
    public AlipayOfflineMarketShopModifyModel brandLogo(String brandLogo) {
      
      this.brandLogo = brandLogo;
      return this;
    }
  
     /**
     * 品牌LOGO; 图片ID，不填写则默认为门店首图main_image。
     * @return brandLogo
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "4G8gtQGKT7Ga1lS2_CkMBAAAACMAAQED", value = "品牌LOGO; 图片ID，不填写则默认为门店首图main_image。")
  
    public String getBrandLogo() {
      return brandLogo;
    }
  
  
    public void setBrandLogo(String brandLogo) {
      this.brandLogo = brandLogo;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 = "2015063000020189", 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 AlipayOfflineMarketShopModifyModel cityCode(String cityCode) {
      
      this.cityCode = cityCode;
      return this;
    }
  
     /**
     * 城市编码，国标码，详见国家统计局数据 &lt;a href&#x3D;\&quot;http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/doc/2016.xls\&quot;&gt;点此下载&lt;/a&gt;。
     * @return cityCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "522400", value = "城市编码，国标码，详见国家统计局数据 <a href=\"http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/doc/2016.xls\">点此下载</a>。")
  
    public String getCityCode() {
      return cityCode;
    }
  
  
    public void setCityCode(String cityCode) {
      this.cityCode = cityCode;
    }
  
  
    public AlipayOfflineMarketShopModifyModel contactNumber(String contactNumber) {
      
      this.contactNumber = contactNumber;
      return this;
    }
  
     /**
     * 门店电话号码；支持座机和手机，在客户端对用户展现，支持多个电话，以英文逗号分隔。
     * @return contactNumber
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "13534567652,021-76391728", value = "门店电话号码；支持座机和手机，在客户端对用户展现，支持多个电话，以英文逗号分隔。")
  
    public String getContactNumber() {
      return contactNumber;
    }
  
  
    public void setContactNumber(String contactNumber) {
      this.contactNumber = contactNumber;
    }
  
  
    public AlipayOfflineMarketShopModifyModel districtCode(String districtCode) {
      
      this.districtCode = districtCode;
      return this;
    }
  
     /**
     * 区县编码，国标码，详见国家统计局数据 &lt;a href&#x3D;\&quot;http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/doc/2016.xls\&quot;&gt;点此下载&lt;/a&gt;。
     * @return districtCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "522401", value = "区县编码，国标码，详见国家统计局数据 <a href=\"http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/doc/2016.xls\">点此下载</a>。")
  
    public String getDistrictCode() {
      return districtCode;
    }
  
  
    public void setDistrictCode(String districtCode) {
      this.districtCode = districtCode;
    }
  
  
    public AlipayOfflineMarketShopModifyModel implementId(String implementId) {
      
      this.implementId = implementId;
      return this;
    }
  
     /**
     * 店铺使用的机具编号，多个以英文逗号分隔。
     * @return implementId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "UO001,TY002", value = "店铺使用的机具编号，多个以英文逗号分隔。")
  
    public String getImplementId() {
      return implementId;
    }
  
  
    public void setImplementId(String implementId) {
      this.implementId = implementId;
    }
  
  
    public AlipayOfflineMarketShopModifyModel isOperatingOnline(String isOperatingOnline) {
      
      this.isOperatingOnline = isOperatingOnline;
      return this;
    }
  
     /**
     * 是否在其他平台开店，T表示有开店，F表示未开店。
     * @return isOperatingOnline
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "F", value = "是否在其他平台开店，T表示有开店，F表示未开店。")
  
    public String getIsOperatingOnline() {
      return isOperatingOnline;
    }
  
  
    public void setIsOperatingOnline(String isOperatingOnline) {
      this.isOperatingOnline = isOperatingOnline;
    }
  
  
    public AlipayOfflineMarketShopModifyModel isShow(String isShow) {
      
      this.isShow = isShow;
      return this;
    }
  
     /**
     * 废弃字段，T表示显示，F表示隐藏，默认为T。
     * @return isShow
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "F", value = "废弃字段，T表示显示，F表示隐藏，默认为T。")
  
    public String getIsShow() {
      return isShow;
    }
  
  
    public void setIsShow(String isShow) {
      this.isShow = isShow;
    }
  
  
    public AlipayOfflineMarketShopModifyModel latitude(String latitude) {
      
      this.latitude = latitude;
      return this;
    }
  
     /**
     * 纬度，注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker
     * @return latitude
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "27.296891", value = "纬度，注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker")
  
    public String getLatitude() {
      return latitude;
    }
  
  
    public void setLatitude(String latitude) {
      this.latitude = latitude;
    }
  
  
    public AlipayOfflineMarketShopModifyModel licence(String licence) {
      
      this.licence = licence;
      return this;
    }
  
     /**
     * 门店营业执照图片，各行业所需的证照资质参见：https://doc.open.alipay.com/doc2/detail.htm?spm&#x3D;a219a.7629140.0.0.NBvQVP&amp;treeId&#x3D;78&amp;articleId&#x3D;104497&amp;docType&#x3D;1。
     * @return licence
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "En00j29-TGyXNVEPXIssFQAAACMAAQED", value = "门店营业执照图片，各行业所需的证照资质参见：https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.NBvQVP&treeId=78&articleId=104497&docType=1。")
  
    public String getLicence() {
      return licence;
    }
  
  
    public void setLicence(String licence) {
      this.licence = licence;
    }
  
  
    public AlipayOfflineMarketShopModifyModel licenceCode(String licenceCode) {
      
      this.licenceCode = licenceCode;
      return this;
    }
  
     /**
     * 门店营业执照编号。只支持输入中文，英文和数字。
     * @return licenceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "HZ001", value = "门店营业执照编号。只支持输入中文，英文和数字。")
  
    public String getLicenceCode() {
      return licenceCode;
    }
  
  
    public void setLicenceCode(String licenceCode) {
      this.licenceCode = licenceCode;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel longitude(String longitude) {
      
      this.longitude = longitude;
      return this;
    }
  
     /**
     * 经度，注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker
     * @return longitude
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "105.291027", value = "经度，注：高德坐标系。经纬度是门店搜索和活动推荐的重要参数，录入时请确保经纬度参数准确。高德经纬度查询：http://lbs.amap.com/console/show/picker")
  
    public String getLongitude() {
      return longitude;
    }
  
  
    public void setLongitude(String longitude) {
      this.longitude = longitude;
    }
  
  
    public AlipayOfflineMarketShopModifyModel mainImage(String mainImage) {
      
      this.mainImage = mainImage;
      return this;
    }
  
     /**
     * 门店首图；非常重要，推荐尺寸2000*1500。
     * @return mainImage
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "4G8gtQGKT7Ga1lS2_CkMBAAAACMAAQED", value = "门店首图；非常重要，推荐尺寸2000*1500。")
  
    public String getMainImage() {
      return mainImage;
    }
  
  
    public void setMainImage(String mainImage) {
      this.mainImage = mainImage;
    }
  
  
    public AlipayOfflineMarketShopModifyModel mainShopName(String mainShopName) {
      
      this.mainShopName = mainShopName;
      return this;
    }
  
     /**
     * 主门店名  比如：肯德基；主店名里不要包含分店名，如“万塘路店”。主店名长度不能超过20个字符。【xxx店】、(xxx店)、（xxx店）、[xxx店]、&lt;xxx店&gt;、xxx店，等类似的主店名都是不合法的，如果需要录入分店，请填写到branch_shop_name字段中。
     * @return mainShopName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "肯德基", value = "主门店名  比如：肯德基；主店名里不要包含分店名，如“万塘路店”。主店名长度不能超过20个字符。【xxx店】、(xxx店)、（xxx店）、[xxx店]、<xxx店>、xxx店，等类似的主店名都是不合法的，如果需要录入分店，请填写到branch_shop_name字段中。")
  
    public String getMainShopName() {
      return mainShopName;
    }
  
  
    public void setMainShopName(String mainShopName) {
      this.mainShopName = mainShopName;
    }
  
  
    public AlipayOfflineMarketShopModifyModel noSmoking(String noSmoking) {
      
      this.noSmoking = noSmoking;
      return this;
    }
  
     /**
     * 无烟区支持，T表示禁烟，F表示不禁烟；不传值默认F。
     * @return noSmoking
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "无烟区支持，T表示禁烟，F表示不禁烟；不传值默认F。")
  
    public String getNoSmoking() {
      return noSmoking;
    }
  
  
    public void setNoSmoking(String noSmoking) {
      this.noSmoking = noSmoking;
    }
  
  
    public AlipayOfflineMarketShopModifyModel notifyMobile(String notifyMobile) {
      
      this.notifyMobile = notifyMobile;
      return this;
    }
  
     /**
     * 门店店长电话号码；用于接收门店状态变更通知，收款成功通知等通知消息，不在客户端展示；多个以引文逗号分隔。
     * @return notifyMobile
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "13827197382", value = "门店店长电话号码；用于接收门店状态变更通知，收款成功通知等通知消息，不在客户端展示；多个以引文逗号分隔。")
  
    public String getNotifyMobile() {
      return notifyMobile;
    }
  
  
    public void setNotifyMobile(String notifyMobile) {
      this.notifyMobile = notifyMobile;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel onlineImage(String onlineImage) {
      
      this.onlineImage = onlineImage;
      return this;
    }
  
     /**
     * 废弃字段，请使用online_url字段替代。
     * @return onlineImage
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", value = "废弃字段，请使用online_url字段替代。")
  
    public String getOnlineImage() {
      return onlineImage;
    }
  
  
    public void setOnlineImage(String onlineImage) {
      this.onlineImage = onlineImage;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel opId(String opId) {
      
      this.opId = opId;
      return this;
    }
  
     /**
     * （支付宝内部参数）操作员的支付账号ID(服务商ID、城市经理ID)。
     * @return opId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088001969784501", value = "（支付宝内部参数）操作员的支付账号ID(服务商ID、城市经理ID)。")
  
    public String getOpId() {
      return opId;
    }
  
  
    public void setOpId(String opId) {
      this.opId = opId;
    }
  
  
    public AlipayOfflineMarketShopModifyModel opRole(String opRole) {
      
      this.opRole = opRole;
      return this;
    }
  
     /**
     * 表示以系统集成商的身份开店，开放平台现在统一传入ISV。
     * @return opRole
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "ISV、PROVIDER", value = "表示以系统集成商的身份开店，开放平台现在统一传入ISV。")
  
    public String getOpRole() {
      return opRole;
    }
  
  
    public void setOpRole(String opRole) {
      this.opRole = opRole;
    }
  
  
    public AlipayOfflineMarketShopModifyModel operateNotifyUrl(String operateNotifyUrl) {
      
      this.operateNotifyUrl = operateNotifyUrl;
      return this;
    }
  
     /**
     * 通知发送url;当商户的门店审核状态发生变化时，会向该地址推送消息。
     * @return operateNotifyUrl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "http://example.com/gateway.do", value = "通知发送url;当商户的门店审核状态发生变化时，会向该地址推送消息。")
  
    public String getOperateNotifyUrl() {
      return operateNotifyUrl;
    }
  
  
    public void setOperateNotifyUrl(String operateNotifyUrl) {
      this.operateNotifyUrl = operateNotifyUrl;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel provinceCode(String provinceCode) {
      
      this.provinceCode = provinceCode;
      return this;
    }
  
     /**
     * 省份编码，国标码，详见国家统计局数据 &lt;a href&#x3D;\&quot;http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/doc/2016.xls\&quot;&gt;点此下载”&lt;/a&gt;。
     * @return provinceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "520000", value = "省份编码，国标码，详见国家统计局数据 <a href=\"http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/doc/2016.xls\">点此下载”</a>。")
  
    public String getProvinceCode() {
      return provinceCode;
    }
  
  
    public void setProvinceCode(String provinceCode) {
      this.provinceCode = provinceCode;
    }
  
  
    public AlipayOfflineMarketShopModifyModel requestId(String requestId) {
      
      this.requestId = requestId;
      return this;
    }
  
     /**
     * 外部请求ID; 标识ISV本次修改的请求，由开发者自定义，不同的请求使用不同的ID，在门店notify消息中也会带有该参数，以此标明本次notify消息是对哪个请求的回应
     * @return requestId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "20151234321423", value = "外部请求ID; 标识ISV本次修改的请求，由开发者自定义，不同的请求使用不同的ID，在门店notify消息中也会带有该参数，以此标明本次notify消息是对哪个请求的回应")
  
    public String getRequestId() {
      return requestId;
    }
  
  
    public void setRequestId(String requestId) {
      this.requestId = requestId;
    }
  
  
    public AlipayOfflineMarketShopModifyModel shopId(String shopId) {
      
      this.shopId = shopId;
      return this;
    }
  
     /**
     * 支付宝门店ID。
     * @return shopId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2015052100077000000000120773", value = "支付宝门店ID。")
  
    public String getShopId() {
      return shopId;
    }
  
  
    public void setShopId(String shopId) {
      this.shopId = shopId;
    }
  
  
    public AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel wifi(String wifi) {
      
      this.wifi = wifi;
      return this;
    }
  
     /**
     * 门店是否支持WIFI，T表示支持，F表示不支持，不传在客户端不作展示。
     * @return wifi
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "F", 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 AlipayOfflineMarketShopModifyModel instance itself
     */
    public AlipayOfflineMarketShopModifyModel 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;
      }
      AlipayOfflineMarketShopModifyModel alipayOfflineMarketShopModifyModel = (AlipayOfflineMarketShopModifyModel) o;
      return Objects.equals(this.address, alipayOfflineMarketShopModifyModel.address) &&
          Objects.equals(this.auditImages, alipayOfflineMarketShopModifyModel.auditImages) &&
          Objects.equals(this.authLetter, alipayOfflineMarketShopModifyModel.authLetter) &&
          Objects.equals(this.avgPrice, alipayOfflineMarketShopModifyModel.avgPrice) &&
          Objects.equals(this.bizVersion, alipayOfflineMarketShopModifyModel.bizVersion) &&
          Objects.equals(this.box, alipayOfflineMarketShopModifyModel.box) &&
          Objects.equals(this.branchShopName, alipayOfflineMarketShopModifyModel.branchShopName) &&
          Objects.equals(this.brandLogo, alipayOfflineMarketShopModifyModel.brandLogo) &&
          Objects.equals(this.brandName, alipayOfflineMarketShopModifyModel.brandName) &&
          Objects.equals(this.businessCertificate, alipayOfflineMarketShopModifyModel.businessCertificate) &&
          Objects.equals(this.businessCertificateExpires, alipayOfflineMarketShopModifyModel.businessCertificateExpires) &&
          Objects.equals(this.businessTime, alipayOfflineMarketShopModifyModel.businessTime) &&
          Objects.equals(this.categoryId, alipayOfflineMarketShopModifyModel.categoryId) &&
          Objects.equals(this.cityCode, alipayOfflineMarketShopModifyModel.cityCode) &&
          Objects.equals(this.contactNumber, alipayOfflineMarketShopModifyModel.contactNumber) &&
          Objects.equals(this.districtCode, alipayOfflineMarketShopModifyModel.districtCode) &&
          Objects.equals(this.implementId, alipayOfflineMarketShopModifyModel.implementId) &&
          Objects.equals(this.isOperatingOnline, alipayOfflineMarketShopModifyModel.isOperatingOnline) &&
          Objects.equals(this.isShow, alipayOfflineMarketShopModifyModel.isShow) &&
          Objects.equals(this.latitude, alipayOfflineMarketShopModifyModel.latitude) &&
          Objects.equals(this.licence, alipayOfflineMarketShopModifyModel.licence) &&
          Objects.equals(this.licenceCode, alipayOfflineMarketShopModifyModel.licenceCode) &&
          Objects.equals(this.licenceExpires, alipayOfflineMarketShopModifyModel.licenceExpires) &&
          Objects.equals(this.licenceName, alipayOfflineMarketShopModifyModel.licenceName) &&
          Objects.equals(this.longitude, alipayOfflineMarketShopModifyModel.longitude) &&
          Objects.equals(this.mainImage, alipayOfflineMarketShopModifyModel.mainImage) &&
          Objects.equals(this.mainShopName, alipayOfflineMarketShopModifyModel.mainShopName) &&
          Objects.equals(this.noSmoking, alipayOfflineMarketShopModifyModel.noSmoking) &&
          Objects.equals(this.notifyMobile, alipayOfflineMarketShopModifyModel.notifyMobile) &&
          Objects.equals(this.notifyUrl, alipayOfflineMarketShopModifyModel.notifyUrl) &&
          Objects.equals(this.onlineImage, alipayOfflineMarketShopModifyModel.onlineImage) &&
          Objects.equals(this.onlineUrl, alipayOfflineMarketShopModifyModel.onlineUrl) &&
          Objects.equals(this.opId, alipayOfflineMarketShopModifyModel.opId) &&
          Objects.equals(this.opRole, alipayOfflineMarketShopModifyModel.opRole) &&
          Objects.equals(this.operateNotifyUrl, alipayOfflineMarketShopModifyModel.operateNotifyUrl) &&
          Objects.equals(this.otherAuthorization, alipayOfflineMarketShopModifyModel.otherAuthorization) &&
          Objects.equals(this.parking, alipayOfflineMarketShopModifyModel.parking) &&
          Objects.equals(this.partnerId, alipayOfflineMarketShopModifyModel.partnerId) &&
          Objects.equals(this.payType, alipayOfflineMarketShopModifyModel.payType) &&
          Objects.equals(this.provinceCode, alipayOfflineMarketShopModifyModel.provinceCode) &&
          Objects.equals(this.requestId, alipayOfflineMarketShopModifyModel.requestId) &&
          Objects.equals(this.shopId, alipayOfflineMarketShopModifyModel.shopId) &&
          Objects.equals(this.storeId, alipayOfflineMarketShopModifyModel.storeId) &&
          Objects.equals(this.valueAdded, alipayOfflineMarketShopModifyModel.valueAdded) &&
          Objects.equals(this.version, alipayOfflineMarketShopModifyModel.version) &&
          Objects.equals(this.wifi, alipayOfflineMarketShopModifyModel.wifi)&&
          Objects.equals(this.additionalProperties, alipayOfflineMarketShopModifyModel.additionalProperties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(address, auditImages, authLetter, avgPrice, bizVersion, box, branchShopName, brandLogo, brandName, businessCertificate, businessCertificateExpires, businessTime, categoryId, cityCode, contactNumber, districtCode, implementId, isOperatingOnline, isShow, latitude, licence, licenceCode, licenceExpires, licenceName, longitude, mainImage, mainShopName, noSmoking, notifyMobile, notifyUrl, onlineImage, onlineUrl, opId, opRole, operateNotifyUrl, otherAuthorization, parking, partnerId, payType, provinceCode, requestId, shopId, storeId, valueAdded, version, wifi, additionalProperties);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class AlipayOfflineMarketShopModifyModel {\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("    avgPrice: ").append(toIndentedString(avgPrice)).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("    districtCode: ").append(toIndentedString(districtCode)).append("\n");
      sb.append("    implementId: ").append(toIndentedString(implementId)).append("\n");
      sb.append("    isOperatingOnline: ").append(toIndentedString(isOperatingOnline)).append("\n");
      sb.append("    isShow: ").append(toIndentedString(isShow)).append("\n");
      sb.append("    latitude: ").append(toIndentedString(latitude)).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("    opId: ").append(toIndentedString(opId)).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("    requestId: ").append(toIndentedString(requestId)).append("\n");
      sb.append("    shopId: ").append(toIndentedString(shopId)).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("avg_price");
      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("district_code");
      openapiFields.add("implement_id");
      openapiFields.add("is_operating_online");
      openapiFields.add("is_show");
      openapiFields.add("latitude");
      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_id");
      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("request_id");
      openapiFields.add("shop_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 AlipayOfflineMarketShopModifyModel
    */
    public static void validateJsonObject(JsonObject jsonObj) throws IOException {
        if (jsonObj == null) {
          if (AlipayOfflineMarketShopModifyModel.openapiRequiredFields.isEmpty()) {
            return;
          } else { // has required fields
            throw new IllegalArgumentException(String.format("The required field(s) %s in AlipayOfflineMarketShopModifyModel is not found in the empty JSON string", AlipayOfflineMarketShopModifyModel.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("avg_price") != null && !jsonObj.get("avg_price").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `avg_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("avg_price").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("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("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("is_show") != null && !jsonObj.get("is_show").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `is_show` to be a primitive type in the JSON string but got `%s`", jsonObj.get("is_show").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("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_id") != null && !jsonObj.get("op_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `op_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("op_id").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("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("shop_id") != null && !jsonObj.get("shop_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `shop_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shop_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 (!AlipayOfflineMarketShopModifyModel.class.isAssignableFrom(type.getRawType())) {
           return null; // this class only serializes 'AlipayOfflineMarketShopModifyModel' and its subtypes
         }
         final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
         final TypeAdapter<AlipayOfflineMarketShopModifyModel> thisAdapter
                          = gson.getDelegateAdapter(this, TypeToken.get(AlipayOfflineMarketShopModifyModel.class));
  
         return (TypeAdapter<T>) new TypeAdapter<AlipayOfflineMarketShopModifyModel>() {
             @Override
             public void write(JsonWriter out, AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel read(JsonReader in) throws IOException {
               JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
               validateJsonObject(jsonObj);
               // store additional fields in the deserialized instance
               AlipayOfflineMarketShopModifyModel 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 AlipayOfflineMarketShopModifyModel given an JSON string
    *
    * @param jsonString JSON string
    * @return An instance of AlipayOfflineMarketShopModifyModel
    * @throws IOException if the JSON string is invalid with respect to AlipayOfflineMarketShopModifyModel
    */
    public static AlipayOfflineMarketShopModifyModel fromJson(String jsonString) throws IOException {
      return JSON.getGson().fromJson(jsonString, AlipayOfflineMarketShopModifyModel.class);
    }
  
   /**
    * Convert an instance of AlipayOfflineMarketShopModifyModel to an JSON string
    *
    * @return JSON string
    */
    public String toJson() {
      return JSON.getGson().toJson(this);
    }
  }
  
  