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;
  
  /**
   * AlipayOfflineMarketShopQuerydetailResponseModel
   */
  @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
  public class AlipayOfflineMarketShopQuerydetailResponseModel {
    public static final String SERIALIZED_NAME_ADDRESS = "address";
    @SerializedName(SERIALIZED_NAME_ADDRESS)
    private String address;
  
    public static final String SERIALIZED_NAME_AUDIT_DESC = "audit_desc";
    @SerializedName(SERIALIZED_NAME_AUDIT_DESC)
    private String auditDesc;
  
    public static final String SERIALIZED_NAME_AUDIT_IMAGES = "audit_images";
    @SerializedName(SERIALIZED_NAME_AUDIT_IMAGES)
    private String auditImages;
  
    public static final String SERIALIZED_NAME_AUDIT_STATUS = "audit_status";
    @SerializedName(SERIALIZED_NAME_AUDIT_STATUS)
    private String auditStatus;
  
    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_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_CREATE_CHANNEL = "create_channel";
    @SerializedName(SERIALIZED_NAME_CREATE_CHANNEL)
    private String createChannel;
  
    public static final String SERIALIZED_NAME_DISTRICT_CODE = "district_code";
    @SerializedName(SERIALIZED_NAME_DISTRICT_CODE)
    private String districtCode;
  
    public static final String SERIALIZED_NAME_GMT_SHOP_CREATE = "gmt_shop_create";
    @SerializedName(SERIALIZED_NAME_GMT_SHOP_CREATE)
    private String gmtShopCreate;
  
    public static final String SERIALIZED_NAME_GMT_SHOP_MODIFIED = "gmt_shop_modified";
    @SerializedName(SERIALIZED_NAME_GMT_SHOP_MODIFIED)
    private String gmtShopModified;
  
    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_ONLINE = "is_online";
    @SerializedName(SERIALIZED_NAME_IS_ONLINE)
    private String isOnline;
  
    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_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_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_ONLINE_IMAGE = "online_image";
    @SerializedName(SERIALIZED_NAME_ONLINE_IMAGE)
    private String onlineImage;
  
    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_AUTH_IMAGES = "other_auth_images";
    @SerializedName(SERIALIZED_NAME_OTHER_AUTH_IMAGES)
    private String otherAuthImages;
  
    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_PAYMENT_ACCOUNT = "payment_account";
    @SerializedName(SERIALIZED_NAME_PAYMENT_ACCOUNT)
    private String paymentAccount;
  
    public static final String SERIALIZED_NAME_PIC_COLL = "pic_coll";
    @SerializedName(SERIALIZED_NAME_PIC_COLL)
    private String picColl;
  
    public static final String SERIALIZED_NAME_PROCESSED_QR_CODE = "processed_qr_code";
    @SerializedName(SERIALIZED_NAME_PROCESSED_QR_CODE)
    private String processedQrCode;
  
    public static final String SERIALIZED_NAME_PROVIDER_XIAOER_UID = "provider_xiaoer_uid";
    @SerializedName(SERIALIZED_NAME_PROVIDER_XIAOER_UID)
    private String providerXiaoerUid;
  
    public static final String SERIALIZED_NAME_PROVINCE_CODE = "province_code";
    @SerializedName(SERIALIZED_NAME_PROVINCE_CODE)
    private String provinceCode;
  
    public static final String SERIALIZED_NAME_QR_CODE = "qr_code";
    @SerializedName(SERIALIZED_NAME_QR_CODE)
    private String qrCode;
  
    public static final String SERIALIZED_NAME_SHOP_TAGS = "shop_tags";
    @SerializedName(SERIALIZED_NAME_SHOP_TAGS)
    private String shopTags;
  
    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_WIFI = "wifi";
    @SerializedName(SERIALIZED_NAME_WIFI)
    private String wifi;
  
    public AlipayOfflineMarketShopQuerydetailResponseModel() { 
    }
  
    public AlipayOfflineMarketShopQuerydetailResponseModel address(String address) {
      
      this.address = address;
      return this;
    }
  
     /**
     * 门店详细地址，注：不含省市区
     * @return address
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "万塘路18号黄龙时代广场", value = "门店详细地址，注：不含省市区")
  
    public String getAddress() {
      return address;
    }
  
  
    public void setAddress(String address) {
      this.address = address;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel auditDesc(String auditDesc) {
      
      this.auditDesc = auditDesc;
      return this;
    }
  
     /**
     * 门店审核状态描述，如果审核驳回则有相关的驳回理由
     * @return auditDesc
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "门店首图不符合规范", value = "门店审核状态描述，如果审核驳回则有相关的驳回理由")
  
    public String getAuditDesc() {
      return auditDesc;
    }
  
  
    public void setAuditDesc(String auditDesc) {
      this.auditDesc = auditDesc;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel auditImages(String auditImages) {
      
      this.auditImages = auditImages;
      return this;
    }
  
     /**
     * 门店审核时需要的图片; 至少包含一张门头照片，两张内景照片，必须反映真实的门店情况，审核才能够通过， 多个以英文逗号分隔
     * @return auditImages
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "fTwPcLSxSa2VdNag2PqeKQAAACMAAQEC,bGG2pMF-SAGY444rjAEVigAAACMAAQEC", value = "门店审核时需要的图片; 至少包含一张门头照片，两张内景照片，必须反映真实的门店情况，审核才能够通过， 多个以英文逗号分隔")
  
    public String getAuditImages() {
      return auditImages;
    }
  
  
    public void setAuditImages(String auditImages) {
      this.auditImages = auditImages;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel auditStatus(String auditStatus) {
      
      this.auditStatus = auditStatus;
      return this;
    }
  
     /**
     * 门店审核状态，对于系统商而言，只有三个状态，AUDITING：审核中，AUDIT_FAILED：审核驳回，AUDIT_SUCCESS：审核通过。第一次审核通过会触发门店上架。
     * @return auditStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AUDITING", value = "门店审核状态，对于系统商而言，只有三个状态，AUDITING：审核中，AUDIT_FAILED：审核驳回，AUDIT_SUCCESS：审核通过。第一次审核通过会触发门店上架。")
  
    public String getAuditStatus() {
      return auditStatus;
    }
  
  
    public void setAuditStatus(String auditStatus) {
      this.auditStatus = auditStatus;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel avgPrice(String avgPrice) {
      
      this.avgPrice = avgPrice;
      return this;
    }
  
     /**
     * 人均消费价格，最少1元，最大不超过99999元，请按实际情况填写；单位元；
     * @return avgPrice
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "63", value = "人均消费价格，最少1元，最大不超过99999元，请按实际情况填写；单位元；")
  
    public String getAvgPrice() {
      return avgPrice;
    }
  
  
    public void setAvgPrice(String avgPrice) {
      this.avgPrice = avgPrice;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel brandLogo(String brandLogo) {
      
      this.brandLogo = brandLogo;
      return this;
    }
  
     /**
     * 品牌LOGO; 图片ID，不填写则默认为门店首图main_image
     * @return brandLogo
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "hOTQ1lT1TtOjcxGflvnUXgAAACMAAQED", value = "品牌LOGO; 图片ID，不填写则默认为门店首图main_image")
  
    public String getBrandLogo() {
      return brandLogo;
    }
  
  
    public void setBrandLogo(String brandLogo) {
      this.brandLogo = brandLogo;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel businessCertificate(String businessCertificate) {
      
      this.businessCertificate = businessCertificate;
      return this;
    }
  
     /**
     * 经营许可证，只有餐饮类目需要
     * @return businessCertificate
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "hdYiHK85fHks", value = "经营许可证，只有餐饮类目需要")
  
    public String getBusinessCertificate() {
      return businessCertificate;
    }
  
  
    public void setBusinessCertificate(String businessCertificate) {
      this.businessCertificate = businessCertificate;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel businessCertificateExpires(String businessCertificateExpires) {
      
      this.businessCertificateExpires = businessCertificateExpires;
      return this;
    }
  
     /**
     * 经营许可证有效期，格式：2020-03-20，只有餐饮类目需要
     * @return businessCertificateExpires
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "长期", value = "经营许可证有效期，格式：2020-03-20，只有餐饮类目需要")
  
    public String getBusinessCertificateExpires() {
      return businessCertificateExpires;
    }
  
  
    public void setBusinessCertificateExpires(String businessCertificateExpires) {
      this.businessCertificateExpires = businessCertificateExpires;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel businessTime(String businessTime) {
      
      this.businessTime = businessTime;
      return this;
    }
  
     /**
     * 营业时间;支持分段营业时间，以英文逗号分隔
     * @return businessTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "10:00-23:00", value = "营业时间;支持分段营业时间，以英文逗号分隔")
  
    public String getBusinessTime() {
      return businessTime;
    }
  
  
    public void setBusinessTime(String businessTime) {
      this.businessTime = businessTime;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel categoryId(String categoryId) {
      
      this.categoryId = categoryId;
      return this;
    }
  
     /**
     * 类目ID，类目初始数据由口碑提供
     * @return categoryId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "203", value = "类目ID，类目初始数据由口碑提供")
  
    public String getCategoryId() {
      return categoryId;
    }
  
  
    public void setCategoryId(String categoryId) {
      this.categoryId = categoryId;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel cityCode(String cityCode) {
      
      this.cityCode = cityCode;
      return this;
    }
  
     /**
     * 城市编码，国标码，详见国家统计局数据
     * @return cityCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "330100", value = "城市编码，国标码，详见国家统计局数据")
  
    public String getCityCode() {
      return cityCode;
    }
  
  
    public void setCityCode(String cityCode) {
      this.cityCode = cityCode;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel contactNumber(String contactNumber) {
      
      this.contactNumber = contactNumber;
      return this;
    }
  
     /**
     * 门店电话号码；支持座机和手机，在客户端对用户展现，支持多个电话，以英文逗号分隔
     * @return contactNumber
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "057126888888,18666668888", value = "门店电话号码；支持座机和手机，在客户端对用户展现，支持多个电话，以英文逗号分隔")
  
    public String getContactNumber() {
      return contactNumber;
    }
  
  
    public void setContactNumber(String contactNumber) {
      this.contactNumber = contactNumber;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel createChannel(String createChannel) {
      
      this.createChannel = createChannel;
      return this;
    }
  
     /**
     * 门店创建来源；如：开放平台、支付宝客户端、口碑商家app、商家自主开店、服务商开店、全民开店-支付宝客户端、全民开店-商户app、其它
     * @return createChannel
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "开放平台", value = "门店创建来源；如：开放平台、支付宝客户端、口碑商家app、商家自主开店、服务商开店、全民开店-支付宝客户端、全民开店-商户app、其它")
  
    public String getCreateChannel() {
      return createChannel;
    }
  
  
    public void setCreateChannel(String createChannel) {
      this.createChannel = createChannel;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel districtCode(String districtCode) {
      
      this.districtCode = districtCode;
      return this;
    }
  
     /**
     * 区县编码，国标码，详见国家统计局数据
     * @return districtCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "330101", value = "区县编码，国标码，详见国家统计局数据")
  
    public String getDistrictCode() {
      return districtCode;
    }
  
  
    public void setDistrictCode(String districtCode) {
      this.districtCode = districtCode;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel gmtShopCreate(String gmtShopCreate) {
      
      this.gmtShopCreate = gmtShopCreate;
      return this;
    }
  
     /**
     * 门店创建时间
     * @return gmtShopCreate
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2016-03-13 16:56:45", value = "门店创建时间")
  
    public String getGmtShopCreate() {
      return gmtShopCreate;
    }
  
  
    public void setGmtShopCreate(String gmtShopCreate) {
      this.gmtShopCreate = gmtShopCreate;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel gmtShopModified(String gmtShopModified) {
      
      this.gmtShopModified = gmtShopModified;
      return this;
    }
  
     /**
     * 门店修改时间
     * @return gmtShopModified
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2016-03-13 16:56:45", value = "门店修改时间")
  
    public String getGmtShopModified() {
      return gmtShopModified;
    }
  
  
    public void setGmtShopModified(String gmtShopModified) {
      this.gmtShopModified = gmtShopModified;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel implementId(String implementId) {
      
      this.implementId = implementId;
      return this;
    }
  
     /**
     * 店铺使用的机具编号，多个以英文逗号分隔
     * @return implementId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "HA111,HA112", value = "店铺使用的机具编号，多个以英文逗号分隔")
  
    public String getImplementId() {
      return implementId;
    }
  
  
    public void setImplementId(String implementId) {
      this.implementId = implementId;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel isOnline(String isOnline) {
      
      this.isOnline = isOnline;
      return this;
    }
  
     /**
     * 门店是否上架，T表示上架,F表示未上架，第一次门店审核通过后会触发上架
     * @return isOnline
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "门店是否上架，T表示上架,F表示未上架，第一次门店审核通过后会触发上架")
  
    public String getIsOnline() {
      return isOnline;
    }
  
  
    public void setIsOnline(String isOnline) {
      this.isOnline = isOnline;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel isShow(String isShow) {
      
      this.isShow = isShow;
      return this;
    }
  
     /**
     * 门店是否在客户端显示，T表示显示，F表示隐藏
     * @return isShow
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "门店是否在客户端显示，T表示显示，F表示隐藏")
  
    public String getIsShow() {
      return isShow;
    }
  
  
    public void setIsShow(String isShow) {
      this.isShow = isShow;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel isvUid(String isvUid) {
      
      this.isvUid = isvUid;
      return this;
    }
  
     /**
     * 开发者返佣ID，重要：如果有口碑签订了返佣协议，则该字段作为返佣数据提取的依据，需要与签约协议的PID保持一致， 该字段只能在创建接口中传入，不能在修改接口中被修改
     * @return isvUid
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088xxx", value = "开发者返佣ID，重要：如果有口碑签订了返佣协议，则该字段作为返佣数据提取的依据，需要与签约协议的PID保持一致， 该字段只能在创建接口中传入，不能在修改接口中被修改")
  
    public String getIsvUid() {
      return isvUid;
    }
  
  
    public void setIsvUid(String isvUid) {
      this.isvUid = isvUid;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel latitude(String latitude) {
      
      this.latitude = latitude;
      return this;
    }
  
     /**
     * 纬度，最长15位字符（包括小数点）， 注：高德坐标系
     * @return latitude
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "38.65777", value = "纬度，最长15位字符（包括小数点）， 注：高德坐标系")
  
    public String getLatitude() {
      return latitude;
    }
  
  
    public void setLatitude(String latitude) {
      this.latitude = latitude;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel licence(String licence) {
      
      this.licence = licence;
      return this;
    }
  
     /**
     * 门店营业执照图片
     * @return licence
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", value = "门店营业执照图片")
  
    public String getLicence() {
      return licence;
    }
  
  
    public void setLicence(String licence) {
      this.licence = licence;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel licenceCode(String licenceCode) {
      
      this.licenceCode = licenceCode;
      return this;
    }
  
     /**
     * 门店营业执照编号
     * @return licenceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "4406xxx", value = "门店营业执照编号")
  
    public String getLicenceCode() {
      return licenceCode;
    }
  
  
    public void setLicenceCode(String licenceCode) {
      this.licenceCode = licenceCode;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel licenceExpires(String licenceExpires) {
      
      this.licenceExpires = licenceExpires;
      return this;
    }
  
     /**
     * 营业执照过期时间
     * @return licenceExpires
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "20200101 或长期", value = "营业执照过期时间")
  
    public String getLicenceExpires() {
      return licenceExpires;
    }
  
  
    public void setLicenceExpires(String licenceExpires) {
      this.licenceExpires = licenceExpires;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel longitude(String longitude) {
      
      this.longitude = longitude;
      return this;
    }
  
     /**
     * 经度，最长15位字符（包括小数点）， 注：高德坐标系
     * @return longitude
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "104.08296", value = "经度，最长15位字符（包括小数点）， 注：高德坐标系")
  
    public String getLongitude() {
      return longitude;
    }
  
  
    public void setLongitude(String longitude) {
      this.longitude = longitude;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel mainImage(String mainImage) {
      
      this.mainImage = mainImage;
      return this;
    }
  
     /**
     * 门店首图；非常重要，推荐尺寸2000*1500
     * @return mainImage
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", value = "门店首图；非常重要，推荐尺寸2000*1500")
  
    public String getMainImage() {
      return mainImage;
    }
  
  
    public void setMainImage(String mainImage) {
      this.mainImage = mainImage;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel mainShopName(String mainShopName) {
      
      this.mainShopName = mainShopName;
      return this;
    }
  
     /**
     * 主店名；比如：肯德基
     * @return mainShopName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "肯德基", value = "主店名；比如：肯德基")
  
    public String getMainShopName() {
      return mainShopName;
    }
  
  
    public void setMainShopName(String mainShopName) {
      this.mainShopName = mainShopName;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel notifyMobile(String notifyMobile) {
      
      this.notifyMobile = notifyMobile;
      return this;
    }
  
     /**
     * 门店店长电话号码；用于接收门店状态变更通知，收款成功通知等通知消息，不在客户端展示；多个以引文逗号分隔
     * @return notifyMobile
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "13800000000,13688888888", value = "门店店长电话号码；用于接收门店状态变更通知，收款成功通知等通知消息，不在客户端展示；多个以引文逗号分隔")
  
    public String getNotifyMobile() {
      return notifyMobile;
    }
  
  
    public void setNotifyMobile(String notifyMobile) {
      this.notifyMobile = notifyMobile;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel onlineImage(String onlineImage) {
      
      this.onlineImage = onlineImage;
      return this;
    }
  
     /**
     * 在其他平台的开店图片，支持多张，逗号分隔
     * @return onlineImage
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", value = "在其他平台的开店图片，支持多张，逗号分隔")
  
    public String getOnlineImage() {
      return onlineImage;
    }
  
  
    public void setOnlineImage(String onlineImage) {
      this.onlineImage = onlineImage;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel otherAuthImages(String otherAuthImages) {
      
      this.otherAuthImages = otherAuthImages;
      return this;
    }
  
     /**
     * 其它资质证明图片集；支持多张，逗号分隔
     * @return otherAuthImages
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC", value = "其它资质证明图片集；支持多张，逗号分隔")
  
    public String getOtherAuthImages() {
      return otherAuthImages;
    }
  
  
    public void setOtherAuthImages(String otherAuthImages) {
      this.otherAuthImages = otherAuthImages;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel parking(String parking) {
      
      this.parking = parking;
      return this;
    }
  
     /**
     * 门店是否支持停车，T表示支持，F表示不支持，不传在客户端不作展示
     * @return parking
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "T", value = "门店是否支持停车，T表示支持，F表示不支持，不传在客户端不作展示")
  
    public String getParking() {
      return parking;
    }
  
  
    public void setParking(String parking) {
      this.parking = parking;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel partnerId(String partnerId) {
      
      this.partnerId = partnerId;
      return this;
    }
  
     /**
     * 门店的签约ID
     * @return partnerId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088101117656381", value = "门店的签约ID")
  
    public String getPartnerId() {
      return partnerId;
    }
  
  
    public void setPartnerId(String partnerId) {
      this.partnerId = partnerId;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel payType(String payType) {
      
      this.payType = payType;
      return this;
    }
  
     /**
     * 默认付款类型；如：付款码、扫码付、声波支付、在线买单、其它
     * @return payType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "付款码", value = "默认付款类型；如：付款码、扫码付、声波支付、在线买单、其它")
  
    public String getPayType() {
      return payType;
    }
  
  
    public void setPayType(String payType) {
      this.payType = payType;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel paymentAccount(String paymentAccount) {
      
      this.paymentAccount = paymentAccount;
      return this;
    }
  
     /**
     * 门店收款账户，门店收款账户只能被查询，不能通过接口修改。如果为空，则表示门店收款账户为商户签约账户
     * @return paymentAccount
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "testyufabu07@alipay.com", value = "门店收款账户，门店收款账户只能被查询，不能通过接口修改。如果为空，则表示门店收款账户为商户签约账户")
  
    public String getPaymentAccount() {
      return paymentAccount;
    }
  
  
    public void setPaymentAccount(String paymentAccount) {
      this.paymentAccount = paymentAccount;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel picColl(String picColl) {
      
      this.picColl = picColl;
      return this;
    }
  
     /**
     * 图片集，是map转化成的json串，key是图片id,value是图片url
     * @return picColl
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "{\"IUFIDASFIEUIOFKSFIUFE83IEI\":\"http://object.alipay.com/getpic.do?kjkdjkjj\"}", value = "图片集，是map转化成的json串，key是图片id,value是图片url")
  
    public String getPicColl() {
      return picColl;
    }
  
  
    public void setPicColl(String picColl) {
      this.picColl = picColl;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel processedQrCode(String processedQrCode) {
      
      this.processedQrCode = processedQrCode;
      return this;
    }
  
     /**
     * 经过加工后的门店收款二维码
     * @return processedQrCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "https://tfs.alipay.com/files/alipaygif***_/T1WQhXXmtjX***7d20ca1072", value = "经过加工后的门店收款二维码")
  
    public String getProcessedQrCode() {
      return processedQrCode;
    }
  
  
    public void setProcessedQrCode(String processedQrCode) {
      this.processedQrCode = processedQrCode;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel providerXiaoerUid(String providerXiaoerUid) {
      
      this.providerXiaoerUid = providerXiaoerUid;
      return this;
    }
  
     /**
     * 门店运营归属人uid
     * @return providerXiaoerUid
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2088*******", value = "门店运营归属人uid")
  
    public String getProviderXiaoerUid() {
      return providerXiaoerUid;
    }
  
  
    public void setProviderXiaoerUid(String providerXiaoerUid) {
      this.providerXiaoerUid = providerXiaoerUid;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel provinceCode(String provinceCode) {
      
      this.provinceCode = provinceCode;
      return this;
    }
  
     /**
     * 省份编码，国标码，详见国家统计局数据
     * @return provinceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "330000", value = "省份编码，国标码，详见国家统计局数据")
  
    public String getProvinceCode() {
      return provinceCode;
    }
  
  
    public void setProvinceCode(String provinceCode) {
      this.provinceCode = provinceCode;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel qrCode(String qrCode) {
      
      this.qrCode = qrCode;
      return this;
    }
  
     /**
     * 门店收款二维码裸码
     * @return qrCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "https://tfs.alipay.com/images/mobilecodec/T1Y***QhXXhBe", value = "门店收款二维码裸码")
  
    public String getQrCode() {
      return qrCode;
    }
  
  
    public void setQrCode(String qrCode) {
      this.qrCode = qrCode;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel shopTags(String shopTags) {
      
      this.shopTags = shopTags;
      return this;
    }
  
     /**
     * 门店标签；JSON格式。包括：keyMerchant-是否重点商户（T/F）；isHallMeal-堂食（T/F）；注：若标签 key 不存在，则门店无对应的标签
     * @return shopTags
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "{\"keyMerchant\":\"T\"}", value = "门店标签；JSON格式。包括：keyMerchant-是否重点商户（T/F）；isHallMeal-堂食（T/F）；注：若标签 key 不存在，则门店无对应的标签")
  
    public String getShopTags() {
      return shopTags;
    }
  
  
    public void setShopTags(String shopTags) {
      this.shopTags = shopTags;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel storeId(String storeId) {
      
      this.storeId = storeId;
      return this;
    }
  
     /**
     * 外部门店编号；最长54位字符，该编号将作为收单接口的入参， 请开发者自行确保其唯一性
     * @return storeId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "hz001", value = "外部门店编号；最长54位字符，该编号将作为收单接口的入参， 请开发者自行确保其唯一性")
  
    public String getStoreId() {
      return storeId;
    }
  
  
    public void setStoreId(String storeId) {
      this.storeId = storeId;
    }
  
  
    public AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel instance itself
     */
    public AlipayOfflineMarketShopQuerydetailResponseModel 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;
      }
      AlipayOfflineMarketShopQuerydetailResponseModel alipayOfflineMarketShopQuerydetailResponseModel = (AlipayOfflineMarketShopQuerydetailResponseModel) o;
      return Objects.equals(this.address, alipayOfflineMarketShopQuerydetailResponseModel.address) &&
          Objects.equals(this.auditDesc, alipayOfflineMarketShopQuerydetailResponseModel.auditDesc) &&
          Objects.equals(this.auditImages, alipayOfflineMarketShopQuerydetailResponseModel.auditImages) &&
          Objects.equals(this.auditStatus, alipayOfflineMarketShopQuerydetailResponseModel.auditStatus) &&
          Objects.equals(this.authLetter, alipayOfflineMarketShopQuerydetailResponseModel.authLetter) &&
          Objects.equals(this.avgPrice, alipayOfflineMarketShopQuerydetailResponseModel.avgPrice) &&
          Objects.equals(this.box, alipayOfflineMarketShopQuerydetailResponseModel.box) &&
          Objects.equals(this.branchShopName, alipayOfflineMarketShopQuerydetailResponseModel.branchShopName) &&
          Objects.equals(this.brandLogo, alipayOfflineMarketShopQuerydetailResponseModel.brandLogo) &&
          Objects.equals(this.brandName, alipayOfflineMarketShopQuerydetailResponseModel.brandName) &&
          Objects.equals(this.businessCertificate, alipayOfflineMarketShopQuerydetailResponseModel.businessCertificate) &&
          Objects.equals(this.businessCertificateExpires, alipayOfflineMarketShopQuerydetailResponseModel.businessCertificateExpires) &&
          Objects.equals(this.businessTime, alipayOfflineMarketShopQuerydetailResponseModel.businessTime) &&
          Objects.equals(this.categoryId, alipayOfflineMarketShopQuerydetailResponseModel.categoryId) &&
          Objects.equals(this.cityCode, alipayOfflineMarketShopQuerydetailResponseModel.cityCode) &&
          Objects.equals(this.contactNumber, alipayOfflineMarketShopQuerydetailResponseModel.contactNumber) &&
          Objects.equals(this.createChannel, alipayOfflineMarketShopQuerydetailResponseModel.createChannel) &&
          Objects.equals(this.districtCode, alipayOfflineMarketShopQuerydetailResponseModel.districtCode) &&
          Objects.equals(this.gmtShopCreate, alipayOfflineMarketShopQuerydetailResponseModel.gmtShopCreate) &&
          Objects.equals(this.gmtShopModified, alipayOfflineMarketShopQuerydetailResponseModel.gmtShopModified) &&
          Objects.equals(this.implementId, alipayOfflineMarketShopQuerydetailResponseModel.implementId) &&
          Objects.equals(this.isOnline, alipayOfflineMarketShopQuerydetailResponseModel.isOnline) &&
          Objects.equals(this.isOperatingOnline, alipayOfflineMarketShopQuerydetailResponseModel.isOperatingOnline) &&
          Objects.equals(this.isShow, alipayOfflineMarketShopQuerydetailResponseModel.isShow) &&
          Objects.equals(this.isvUid, alipayOfflineMarketShopQuerydetailResponseModel.isvUid) &&
          Objects.equals(this.latitude, alipayOfflineMarketShopQuerydetailResponseModel.latitude) &&
          Objects.equals(this.licence, alipayOfflineMarketShopQuerydetailResponseModel.licence) &&
          Objects.equals(this.licenceCode, alipayOfflineMarketShopQuerydetailResponseModel.licenceCode) &&
          Objects.equals(this.licenceExpires, alipayOfflineMarketShopQuerydetailResponseModel.licenceExpires) &&
          Objects.equals(this.licenceName, alipayOfflineMarketShopQuerydetailResponseModel.licenceName) &&
          Objects.equals(this.longitude, alipayOfflineMarketShopQuerydetailResponseModel.longitude) &&
          Objects.equals(this.mainImage, alipayOfflineMarketShopQuerydetailResponseModel.mainImage) &&
          Objects.equals(this.mainShopName, alipayOfflineMarketShopQuerydetailResponseModel.mainShopName) &&
          Objects.equals(this.noSmoking, alipayOfflineMarketShopQuerydetailResponseModel.noSmoking) &&
          Objects.equals(this.notifyMobile, alipayOfflineMarketShopQuerydetailResponseModel.notifyMobile) &&
          Objects.equals(this.onlineImage, alipayOfflineMarketShopQuerydetailResponseModel.onlineImage) &&
          Objects.equals(this.operateNotifyUrl, alipayOfflineMarketShopQuerydetailResponseModel.operateNotifyUrl) &&
          Objects.equals(this.otherAuthImages, alipayOfflineMarketShopQuerydetailResponseModel.otherAuthImages) &&
          Objects.equals(this.parking, alipayOfflineMarketShopQuerydetailResponseModel.parking) &&
          Objects.equals(this.partnerId, alipayOfflineMarketShopQuerydetailResponseModel.partnerId) &&
          Objects.equals(this.payType, alipayOfflineMarketShopQuerydetailResponseModel.payType) &&
          Objects.equals(this.paymentAccount, alipayOfflineMarketShopQuerydetailResponseModel.paymentAccount) &&
          Objects.equals(this.picColl, alipayOfflineMarketShopQuerydetailResponseModel.picColl) &&
          Objects.equals(this.processedQrCode, alipayOfflineMarketShopQuerydetailResponseModel.processedQrCode) &&
          Objects.equals(this.providerXiaoerUid, alipayOfflineMarketShopQuerydetailResponseModel.providerXiaoerUid) &&
          Objects.equals(this.provinceCode, alipayOfflineMarketShopQuerydetailResponseModel.provinceCode) &&
          Objects.equals(this.qrCode, alipayOfflineMarketShopQuerydetailResponseModel.qrCode) &&
          Objects.equals(this.shopTags, alipayOfflineMarketShopQuerydetailResponseModel.shopTags) &&
          Objects.equals(this.storeId, alipayOfflineMarketShopQuerydetailResponseModel.storeId) &&
          Objects.equals(this.valueAdded, alipayOfflineMarketShopQuerydetailResponseModel.valueAdded) &&
          Objects.equals(this.wifi, alipayOfflineMarketShopQuerydetailResponseModel.wifi)&&
          Objects.equals(this.additionalProperties, alipayOfflineMarketShopQuerydetailResponseModel.additionalProperties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(address, auditDesc, auditImages, auditStatus, authLetter, avgPrice, box, branchShopName, brandLogo, brandName, businessCertificate, businessCertificateExpires, businessTime, categoryId, cityCode, contactNumber, createChannel, districtCode, gmtShopCreate, gmtShopModified, implementId, isOnline, isOperatingOnline, isShow, isvUid, latitude, licence, licenceCode, licenceExpires, licenceName, longitude, mainImage, mainShopName, noSmoking, notifyMobile, onlineImage, operateNotifyUrl, otherAuthImages, parking, partnerId, payType, paymentAccount, picColl, processedQrCode, providerXiaoerUid, provinceCode, qrCode, shopTags, storeId, valueAdded, wifi, additionalProperties);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class AlipayOfflineMarketShopQuerydetailResponseModel {\n");
      sb.append("    address: ").append(toIndentedString(address)).append("\n");
      sb.append("    auditDesc: ").append(toIndentedString(auditDesc)).append("\n");
      sb.append("    auditImages: ").append(toIndentedString(auditImages)).append("\n");
      sb.append("    auditStatus: ").append(toIndentedString(auditStatus)).append("\n");
      sb.append("    authLetter: ").append(toIndentedString(authLetter)).append("\n");
      sb.append("    avgPrice: ").append(toIndentedString(avgPrice)).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("    createChannel: ").append(toIndentedString(createChannel)).append("\n");
      sb.append("    districtCode: ").append(toIndentedString(districtCode)).append("\n");
      sb.append("    gmtShopCreate: ").append(toIndentedString(gmtShopCreate)).append("\n");
      sb.append("    gmtShopModified: ").append(toIndentedString(gmtShopModified)).append("\n");
      sb.append("    implementId: ").append(toIndentedString(implementId)).append("\n");
      sb.append("    isOnline: ").append(toIndentedString(isOnline)).append("\n");
      sb.append("    isOperatingOnline: ").append(toIndentedString(isOperatingOnline)).append("\n");
      sb.append("    isShow: ").append(toIndentedString(isShow)).append("\n");
      sb.append("    isvUid: ").append(toIndentedString(isvUid)).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("    onlineImage: ").append(toIndentedString(onlineImage)).append("\n");
      sb.append("    operateNotifyUrl: ").append(toIndentedString(operateNotifyUrl)).append("\n");
      sb.append("    otherAuthImages: ").append(toIndentedString(otherAuthImages)).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("    paymentAccount: ").append(toIndentedString(paymentAccount)).append("\n");
      sb.append("    picColl: ").append(toIndentedString(picColl)).append("\n");
      sb.append("    processedQrCode: ").append(toIndentedString(processedQrCode)).append("\n");
      sb.append("    providerXiaoerUid: ").append(toIndentedString(providerXiaoerUid)).append("\n");
      sb.append("    provinceCode: ").append(toIndentedString(provinceCode)).append("\n");
      sb.append("    qrCode: ").append(toIndentedString(qrCode)).append("\n");
      sb.append("    shopTags: ").append(toIndentedString(shopTags)).append("\n");
      sb.append("    storeId: ").append(toIndentedString(storeId)).append("\n");
      sb.append("    valueAdded: ").append(toIndentedString(valueAdded)).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_desc");
      openapiFields.add("audit_images");
      openapiFields.add("audit_status");
      openapiFields.add("auth_letter");
      openapiFields.add("avg_price");
      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("create_channel");
      openapiFields.add("district_code");
      openapiFields.add("gmt_shop_create");
      openapiFields.add("gmt_shop_modified");
      openapiFields.add("implement_id");
      openapiFields.add("is_online");
      openapiFields.add("is_operating_online");
      openapiFields.add("is_show");
      openapiFields.add("isv_uid");
      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("online_image");
      openapiFields.add("operate_notify_url");
      openapiFields.add("other_auth_images");
      openapiFields.add("parking");
      openapiFields.add("partner_id");
      openapiFields.add("pay_type");
      openapiFields.add("payment_account");
      openapiFields.add("pic_coll");
      openapiFields.add("processed_qr_code");
      openapiFields.add("provider_xiaoer_uid");
      openapiFields.add("province_code");
      openapiFields.add("qr_code");
      openapiFields.add("shop_tags");
      openapiFields.add("store_id");
      openapiFields.add("value_added");
      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 AlipayOfflineMarketShopQuerydetailResponseModel
    */
    public static void validateJsonObject(JsonObject jsonObj) throws IOException {
        if (jsonObj == null) {
          if (AlipayOfflineMarketShopQuerydetailResponseModel.openapiRequiredFields.isEmpty()) {
            return;
          } else { // has required fields
            throw new IllegalArgumentException(String.format("The required field(s) %s in AlipayOfflineMarketShopQuerydetailResponseModel is not found in the empty JSON string", AlipayOfflineMarketShopQuerydetailResponseModel.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_desc") != null && !jsonObj.get("audit_desc").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `audit_desc` to be a primitive type in the JSON string but got `%s`", jsonObj.get("audit_desc").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("audit_status") != null && !jsonObj.get("audit_status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `audit_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("audit_status").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("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("create_channel") != null && !jsonObj.get("create_channel").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `create_channel` to be a primitive type in the JSON string but got `%s`", jsonObj.get("create_channel").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("gmt_shop_create") != null && !jsonObj.get("gmt_shop_create").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `gmt_shop_create` to be a primitive type in the JSON string but got `%s`", jsonObj.get("gmt_shop_create").toString()));
        }
        if (jsonObj.get("gmt_shop_modified") != null && !jsonObj.get("gmt_shop_modified").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `gmt_shop_modified` to be a primitive type in the JSON string but got `%s`", jsonObj.get("gmt_shop_modified").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_online") != null && !jsonObj.get("is_online").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `is_online` to be a primitive type in the JSON string but got `%s`", jsonObj.get("is_online").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("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("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("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("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_auth_images") != null && !jsonObj.get("other_auth_images").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `other_auth_images` to be a primitive type in the JSON string but got `%s`", jsonObj.get("other_auth_images").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("payment_account") != null && !jsonObj.get("payment_account").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `payment_account` to be a primitive type in the JSON string but got `%s`", jsonObj.get("payment_account").toString()));
        }
        if (jsonObj.get("pic_coll") != null && !jsonObj.get("pic_coll").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `pic_coll` to be a primitive type in the JSON string but got `%s`", jsonObj.get("pic_coll").toString()));
        }
        if (jsonObj.get("processed_qr_code") != null && !jsonObj.get("processed_qr_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `processed_qr_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("processed_qr_code").toString()));
        }
        if (jsonObj.get("provider_xiaoer_uid") != null && !jsonObj.get("provider_xiaoer_uid").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `provider_xiaoer_uid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("provider_xiaoer_uid").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("qr_code") != null && !jsonObj.get("qr_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `qr_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("qr_code").toString()));
        }
        if (jsonObj.get("shop_tags") != null && !jsonObj.get("shop_tags").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `shop_tags` to be a primitive type in the JSON string but got `%s`", jsonObj.get("shop_tags").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("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 (!AlipayOfflineMarketShopQuerydetailResponseModel.class.isAssignableFrom(type.getRawType())) {
           return null; // this class only serializes 'AlipayOfflineMarketShopQuerydetailResponseModel' and its subtypes
         }
         final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
         final TypeAdapter<AlipayOfflineMarketShopQuerydetailResponseModel> thisAdapter
                          = gson.getDelegateAdapter(this, TypeToken.get(AlipayOfflineMarketShopQuerydetailResponseModel.class));
  
         return (TypeAdapter<T>) new TypeAdapter<AlipayOfflineMarketShopQuerydetailResponseModel>() {
             @Override
             public void write(JsonWriter out, AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel read(JsonReader in) throws IOException {
               JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
               validateJsonObject(jsonObj);
               // store additional fields in the deserialized instance
               AlipayOfflineMarketShopQuerydetailResponseModel 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 AlipayOfflineMarketShopQuerydetailResponseModel given an JSON string
    *
    * @param jsonString JSON string
    * @return An instance of AlipayOfflineMarketShopQuerydetailResponseModel
    * @throws IOException if the JSON string is invalid with respect to AlipayOfflineMarketShopQuerydetailResponseModel
    */
    public static AlipayOfflineMarketShopQuerydetailResponseModel fromJson(String jsonString) throws IOException {
      return JSON.getGson().fromJson(jsonString, AlipayOfflineMarketShopQuerydetailResponseModel.class);
    }
  
   /**
    * Convert an instance of AlipayOfflineMarketShopQuerydetailResponseModel to an JSON string
    *
    * @return JSON string
    */
    public String toJson() {
      return JSON.getGson().toJson(this);
    }
  }
  
  