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.alipay.v3.model.OrderStatusData;
  import com.alipay.v3.model.SearchOrderDetailDataBaseItems;
  import com.alipay.v3.model.SearchOrderDetailDataBrandItems;
  import com.alipay.v3.model.SearchOrderDetailDataServiceItems;
  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;
  
  /**
   * SearchOrderDetailData
   */
  @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
  public class SearchOrderDetailData {
    public static final String SERIALIZED_NAME_ACCESS_TYPE = "access_type";
    @SerializedName(SERIALIZED_NAME_ACCESS_TYPE)
    private String accessType;
  
    public static final String SERIALIZED_NAME_APP_CATEGORY = "app_category";
    @SerializedName(SERIALIZED_NAME_APP_CATEGORY)
    private String appCategory;
  
    public static final String SERIALIZED_NAME_APP_ICON = "app_icon";
    @SerializedName(SERIALIZED_NAME_APP_ICON)
    private String appIcon;
  
    public static final String SERIALIZED_NAME_APP_NAME = "app_name";
    @SerializedName(SERIALIZED_NAME_APP_NAME)
    private String appName;
  
    public static final String SERIALIZED_NAME_APP_STATUS = "app_status";
    @SerializedName(SERIALIZED_NAME_APP_STATUS)
    private String appStatus;
  
    public static final String SERIALIZED_NAME_APPID = "appid";
    @SerializedName(SERIALIZED_NAME_APPID)
    private String appid;
  
    public static final String SERIALIZED_NAME_BASE_ORDER_STATUS = "base_order_status";
    @SerializedName(SERIALIZED_NAME_BASE_ORDER_STATUS)
    private OrderStatusData baseOrderStatus;
  
    public static final String SERIALIZED_NAME_BIZ_ID = "biz_id";
    @SerializedName(SERIALIZED_NAME_BIZ_ID)
    private String bizId;
  
    public static final String SERIALIZED_NAME_BOX_ORDER_STATUS = "box_order_status";
    @SerializedName(SERIALIZED_NAME_BOX_ORDER_STATUS)
    private OrderStatusData boxOrderStatus;
  
    public static final String SERIALIZED_NAME_BOX_STATUS = "box_status";
    @SerializedName(SERIALIZED_NAME_BOX_STATUS)
    private String boxStatus;
  
    public static final String SERIALIZED_NAME_BRAND_TEMPLATE_ID = "brand_template_id";
    @SerializedName(SERIALIZED_NAME_BRAND_TEMPLATE_ID)
    private String brandTemplateId;
  
    public static final String SERIALIZED_NAME_BRANDBOX_ORDERSTATUS = "brandbox_orderstatus";
    @SerializedName(SERIALIZED_NAME_BRANDBOX_ORDERSTATUS)
    private OrderStatusData brandboxOrderstatus;
  
    public static final String SERIALIZED_NAME_CAN_MODIFY_KEYWORD = "can_modify_keyword";
    @SerializedName(SERIALIZED_NAME_CAN_MODIFY_KEYWORD)
    private Boolean canModifyKeyword;
  
    public static final String SERIALIZED_NAME_DESCRIBE = "describe";
    @SerializedName(SERIALIZED_NAME_DESCRIBE)
    private String describe;
  
    public static final String SERIALIZED_NAME_DETAIL_BASE_ITEMS = "detail_base_items";
    @SerializedName(SERIALIZED_NAME_DETAIL_BASE_ITEMS)
    private SearchOrderDetailDataBaseItems detailBaseItems;
  
    public static final String SERIALIZED_NAME_DETAIL_BRAND_ITEMS = "detail_brand_items";
    @SerializedName(SERIALIZED_NAME_DETAIL_BRAND_ITEMS)
    private SearchOrderDetailDataBrandItems detailBrandItems;
  
    public static final String SERIALIZED_NAME_DETAIL_SERVICE_ITEMS = "detail_service_items";
    @SerializedName(SERIALIZED_NAME_DETAIL_SERVICE_ITEMS)
    private SearchOrderDetailDataServiceItems detailServiceItems;
  
    public static final String SERIALIZED_NAME_FINAL_STATUS = "final_status";
    @SerializedName(SERIALIZED_NAME_FINAL_STATUS)
    private String finalStatus;
  
    public static final String SERIALIZED_NAME_GMTMODIFIED = "gmtmodified";
    @SerializedName(SERIALIZED_NAME_GMTMODIFIED)
    private String gmtmodified;
  
    public static final String SERIALIZED_NAME_KEYWORD_GMT_MODIFIED = "keyword_gmt_modified";
    @SerializedName(SERIALIZED_NAME_KEYWORD_GMT_MODIFIED)
    private String keywordGmtModified;
  
    public static final String SERIALIZED_NAME_ONLINE_TIME = "online_time";
    @SerializedName(SERIALIZED_NAME_ONLINE_TIME)
    private String onlineTime;
  
    public static final String SERIALIZED_NAME_OPERATOR_TYPE = "operator_type";
    @SerializedName(SERIALIZED_NAME_OPERATOR_TYPE)
    private String operatorType;
  
    public static final String SERIALIZED_NAME_ORDER_ID = "order_id";
    @SerializedName(SERIALIZED_NAME_ORDER_ID)
    private String orderId;
  
    public static final String SERIALIZED_NAME_PARTNER_TYPE = "partner_type";
    @SerializedName(SERIALIZED_NAME_PARTNER_TYPE)
    private String partnerType;
  
    public static final String SERIALIZED_NAME_REJECT_NODE = "reject_node";
    @SerializedName(SERIALIZED_NAME_REJECT_NODE)
    private String rejectNode;
  
    public static final String SERIALIZED_NAME_REJECT_REASON = "reject_reason";
    @SerializedName(SERIALIZED_NAME_REJECT_REASON)
    private String rejectReason;
  
    public static final String SERIALIZED_NAME_SCENE_CODE = "scene_code";
    @SerializedName(SERIALIZED_NAME_SCENE_CODE)
    private String sceneCode;
  
    public static final String SERIALIZED_NAME_SCENE_NAME = "scene_name";
    @SerializedName(SERIALIZED_NAME_SCENE_NAME)
    private String sceneName;
  
    public static final String SERIALIZED_NAME_SERVICE_CODE = "service_code";
    @SerializedName(SERIALIZED_NAME_SERVICE_CODE)
    private String serviceCode;
  
    public static final String SERIALIZED_NAME_SERVICE_NAME = "service_name";
    @SerializedName(SERIALIZED_NAME_SERVICE_NAME)
    private String serviceName;
  
    public static final String SERIALIZED_NAME_STATUS = "status";
    @SerializedName(SERIALIZED_NAME_STATUS)
    private String status;
  
    public static final String SERIALIZED_NAME_SUB_SERVICE_CODE = "sub_service_code";
    @SerializedName(SERIALIZED_NAME_SUB_SERVICE_CODE)
    private String subServiceCode;
  
    public static final String SERIALIZED_NAME_TEMPLATE_ID = "template_id";
    @SerializedName(SERIALIZED_NAME_TEMPLATE_ID)
    private String templateId;
  
    public static final String SERIALIZED_NAME_TEMPLATE_NAME = "template_name";
    @SerializedName(SERIALIZED_NAME_TEMPLATE_NAME)
    private String templateName;
  
    public SearchOrderDetailData() { 
    }
  
    public SearchOrderDetailData accessType(String accessType) {
      
      this.accessType = accessType;
      return this;
    }
  
     /**
     * 申请单类型 BASE：基础信息， BRAND_BOX：品牌直达，SERVICE_BOX服务直达
     * @return accessType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "BASE", value = "申请单类型 BASE：基础信息， BRAND_BOX：品牌直达，SERVICE_BOX服务直达")
  
    public String getAccessType() {
      return accessType;
    }
  
  
    public void setAccessType(String accessType) {
      this.accessType = accessType;
    }
  
  
    public SearchOrderDetailData appCategory(String appCategory) {
      
      this.appCategory = appCategory;
      return this;
    }
  
     /**
     * 小程序类目名
     * @return appCategory
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "旅行住宿_国际货运代理和报关行", value = "小程序类目名")
  
    public String getAppCategory() {
      return appCategory;
    }
  
  
    public void setAppCategory(String appCategory) {
      this.appCategory = appCategory;
    }
  
  
    public SearchOrderDetailData appIcon(String appIcon) {
      
      this.appIcon = appIcon;
      return this;
    }
  
     /**
     * 小程序图标
     * @return appIcon
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "http://appstoreisvpic.alipayobjects.com/dev/bec7d11f-bb62-4abf-9a75-0d10407b4ed8.png", value = "小程序图标")
  
    public String getAppIcon() {
      return appIcon;
    }
  
  
    public void setAppIcon(String appIcon) {
      this.appIcon = appIcon;
    }
  
  
    public SearchOrderDetailData appName(String appName) {
      
      this.appName = appName;
      return this;
    }
  
     /**
     * 小程序名称
     * @return appName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "小程序名称", value = "小程序名称")
  
    public String getAppName() {
      return appName;
    }
  
  
    public void setAppName(String appName) {
      this.appName = appName;
    }
  
  
    public SearchOrderDetailData appStatus(String appStatus) {
      
      this.appStatus = appStatus;
      return this;
    }
  
     /**
     * 小程序状态
     * @return appStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "ON_LINE", value = "小程序状态")
  
    public String getAppStatus() {
      return appStatus;
    }
  
  
    public void setAppStatus(String appStatus) {
      this.appStatus = appStatus;
    }
  
  
    public SearchOrderDetailData appid(String appid) {
      
      this.appid = appid;
      return this;
    }
  
     /**
     * 小程序ID
     * @return appid
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2014060600164699", value = "小程序ID")
  
    public String getAppid() {
      return appid;
    }
  
  
    public void setAppid(String appid) {
      this.appid = appid;
    }
  
  
    public SearchOrderDetailData baseOrderStatus(OrderStatusData baseOrderStatus) {
      
      this.baseOrderStatus = baseOrderStatus;
      return this;
    }
  
     /**
     * Get baseOrderStatus
     * @return baseOrderStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "")
  
    public OrderStatusData getBaseOrderStatus() {
      return baseOrderStatus;
    }
  
  
    public void setBaseOrderStatus(OrderStatusData baseOrderStatus) {
      this.baseOrderStatus = baseOrderStatus;
    }
  
  
    public SearchOrderDetailData bizId(String bizId) {
      
      this.bizId = bizId;
      return this;
    }
  
     /**
     * bizid 业务id
     * @return bizId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "765432123456", value = "bizid 业务id")
  
    public String getBizId() {
      return bizId;
    }
  
  
    public void setBizId(String bizId) {
      this.bizId = bizId;
    }
  
  
    public SearchOrderDetailData boxOrderStatus(OrderStatusData boxOrderStatus) {
      
      this.boxOrderStatus = boxOrderStatus;
      return this;
    }
  
     /**
     * Get boxOrderStatus
     * @return boxOrderStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "")
  
    public OrderStatusData getBoxOrderStatus() {
      return boxOrderStatus;
    }
  
  
    public void setBoxOrderStatus(OrderStatusData boxOrderStatus) {
      this.boxOrderStatus = boxOrderStatus;
    }
  
  
    public SearchOrderDetailData boxStatus(String boxStatus) {
      
      this.boxStatus = boxStatus;
      return this;
    }
  
     /**
     * 上下架状态 ONLINE OFFLINE
     * @return boxStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "ONLINE", value = "上下架状态 ONLINE OFFLINE")
  
    public String getBoxStatus() {
      return boxStatus;
    }
  
  
    public void setBoxStatus(String boxStatus) {
      this.boxStatus = boxStatus;
    }
  
  
    public SearchOrderDetailData brandTemplateId(String brandTemplateId) {
      
      this.brandTemplateId = brandTemplateId;
      return this;
    }
  
     /**
     * 品牌的模板id ONE_WITH_TWO：一拖二、DEFAULT：一拖四
     * @return brandTemplateId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "DEFAULT", value = "品牌的模板id ONE_WITH_TWO：一拖二、DEFAULT：一拖四")
  
    public String getBrandTemplateId() {
      return brandTemplateId;
    }
  
  
    public void setBrandTemplateId(String brandTemplateId) {
      this.brandTemplateId = brandTemplateId;
    }
  
  
    public SearchOrderDetailData brandboxOrderstatus(OrderStatusData brandboxOrderstatus) {
      
      this.brandboxOrderstatus = brandboxOrderstatus;
      return this;
    }
  
     /**
     * Get brandboxOrderstatus
     * @return brandboxOrderstatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "")
  
    public OrderStatusData getBrandboxOrderstatus() {
      return brandboxOrderstatus;
    }
  
  
    public void setBrandboxOrderstatus(OrderStatusData brandboxOrderstatus) {
      this.brandboxOrderstatus = brandboxOrderstatus;
    }
  
  
    public SearchOrderDetailData canModifyKeyword(Boolean canModifyKeyword) {
      
      this.canModifyKeyword = canModifyKeyword;
      return this;
    }
  
     /**
     * 是否可修改关键词
     * @return canModifyKeyword
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "true", value = "是否可修改关键词")
  
    public Boolean getCanModifyKeyword() {
      return canModifyKeyword;
    }
  
  
    public void setCanModifyKeyword(Boolean canModifyKeyword) {
      this.canModifyKeyword = canModifyKeyword;
    }
  
  
    public SearchOrderDetailData describe(String describe) {
      
      this.describe = describe;
      return this;
    }
  
     /**
     * 服务描述
     * @return describe
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "搜索提报测试小程序3", value = "服务描述")
  
    public String getDescribe() {
      return describe;
    }
  
  
    public void setDescribe(String describe) {
      this.describe = describe;
    }
  
  
    public SearchOrderDetailData detailBaseItems(SearchOrderDetailDataBaseItems detailBaseItems) {
      
      this.detailBaseItems = detailBaseItems;
      return this;
    }
  
     /**
     * Get detailBaseItems
     * @return detailBaseItems
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "")
  
    public SearchOrderDetailDataBaseItems getDetailBaseItems() {
      return detailBaseItems;
    }
  
  
    public void setDetailBaseItems(SearchOrderDetailDataBaseItems detailBaseItems) {
      this.detailBaseItems = detailBaseItems;
    }
  
  
    public SearchOrderDetailData detailBrandItems(SearchOrderDetailDataBrandItems detailBrandItems) {
      
      this.detailBrandItems = detailBrandItems;
      return this;
    }
  
     /**
     * Get detailBrandItems
     * @return detailBrandItems
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "")
  
    public SearchOrderDetailDataBrandItems getDetailBrandItems() {
      return detailBrandItems;
    }
  
  
    public void setDetailBrandItems(SearchOrderDetailDataBrandItems detailBrandItems) {
      this.detailBrandItems = detailBrandItems;
    }
  
  
    public SearchOrderDetailData detailServiceItems(SearchOrderDetailDataServiceItems detailServiceItems) {
      
      this.detailServiceItems = detailServiceItems;
      return this;
    }
  
     /**
     * Get detailServiceItems
     * @return detailServiceItems
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(value = "")
  
    public SearchOrderDetailDataServiceItems getDetailServiceItems() {
      return detailServiceItems;
    }
  
  
    public void setDetailServiceItems(SearchOrderDetailDataServiceItems detailServiceItems) {
      this.detailServiceItems = detailServiceItems;
    }
  
  
    public SearchOrderDetailData finalStatus(String finalStatus) {
      
      this.finalStatus = finalStatus;
      return this;
    }
  
     /**
     * 最终状态
     * @return finalStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AGREE", value = "最终状态")
  
    public String getFinalStatus() {
      return finalStatus;
    }
  
  
    public void setFinalStatus(String finalStatus) {
      this.finalStatus = finalStatus;
    }
  
  
    public SearchOrderDetailData gmtmodified(String gmtmodified) {
      
      this.gmtmodified = gmtmodified;
      return this;
    }
  
     /**
     * 最后修改时间
     * @return gmtmodified
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2020-10-15 11:34:23", value = "最后修改时间")
  
    public String getGmtmodified() {
      return gmtmodified;
    }
  
  
    public void setGmtmodified(String gmtmodified) {
      this.gmtmodified = gmtmodified;
    }
  
  
    public SearchOrderDetailData keywordGmtModified(String keywordGmtModified) {
      
      this.keywordGmtModified = keywordGmtModified;
      return this;
    }
  
     /**
     * 关键词的修改时间
     * @return keywordGmtModified
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2020-10-14 14:25:50", value = "关键词的修改时间")
  
    public String getKeywordGmtModified() {
      return keywordGmtModified;
    }
  
  
    public void setKeywordGmtModified(String keywordGmtModified) {
      this.keywordGmtModified = keywordGmtModified;
    }
  
  
    public SearchOrderDetailData onlineTime(String onlineTime) {
      
      this.onlineTime = onlineTime;
      return this;
    }
  
     /**
     * 上架时间
     * @return onlineTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2020-10-15 11:34:23", value = "上架时间")
  
    public String getOnlineTime() {
      return onlineTime;
    }
  
  
    public void setOnlineTime(String onlineTime) {
      this.onlineTime = onlineTime;
    }
  
  
    public SearchOrderDetailData operatorType(String operatorType) {
      
      this.operatorType = operatorType;
      return this;
    }
  
     /**
     * 操作人员类型
     * @return operatorType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "操作人员类型", value = "操作人员类型")
  
    public String getOperatorType() {
      return operatorType;
    }
  
  
    public void setOperatorType(String operatorType) {
      this.operatorType = operatorType;
    }
  
  
    public SearchOrderDetailData orderId(String orderId) {
      
      this.orderId = orderId;
      return this;
    }
  
     /**
     * 申请单id
     * @return orderId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AP2020101501254498", value = "申请单id")
  
    public String getOrderId() {
      return orderId;
    }
  
  
    public void setOrderId(String orderId) {
      this.orderId = orderId;
    }
  
  
    public SearchOrderDetailData partnerType(String partnerType) {
      
      this.partnerType = partnerType;
      return this;
    }
  
     /**
     * 查询服务提供者生态类型 一二三方 1 | 2 | 3
     * @return partnerType
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1", value = "查询服务提供者生态类型 一二三方 1 | 2 | 3")
  
    public String getPartnerType() {
      return partnerType;
    }
  
  
    public void setPartnerType(String partnerType) {
      this.partnerType = partnerType;
    }
  
  
    public SearchOrderDetailData rejectNode(String rejectNode) {
      
      this.rejectNode = rejectNode;
      return this;
    }
  
     /**
     * 驳回节点
     * @return rejectNode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "驳回节点", value = "驳回节点")
  
    public String getRejectNode() {
      return rejectNode;
    }
  
  
    public void setRejectNode(String rejectNode) {
      this.rejectNode = rejectNode;
    }
  
  
    public SearchOrderDetailData rejectReason(String rejectReason) {
      
      this.rejectReason = rejectReason;
      return this;
    }
  
     /**
     * 驳回原因
     * @return rejectReason
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "驳回原因", value = "驳回原因")
  
    public String getRejectReason() {
      return rejectReason;
    }
  
  
    public void setRejectReason(String rejectReason) {
      this.rejectReason = rejectReason;
    }
  
  
    public SearchOrderDetailData sceneCode(String sceneCode) {
      
      this.sceneCode = sceneCode;
      return this;
    }
  
     /**
     * 场景码
     * @return sceneCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "HOT_WORD_RANKING", value = "场景码")
  
    public String getSceneCode() {
      return sceneCode;
    }
  
  
    public void setSceneCode(String sceneCode) {
      this.sceneCode = sceneCode;
    }
  
  
    public SearchOrderDetailData sceneName(String sceneName) {
      
      this.sceneName = sceneName;
      return this;
    }
  
     /**
     * 场景名称
     * @return sceneName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "场景名称", value = "场景名称")
  
    public String getSceneName() {
      return sceneName;
    }
  
  
    public void setSceneName(String sceneName) {
      this.sceneName = sceneName;
    }
  
  
    public SearchOrderDetailData serviceCode(String serviceCode) {
      
      this.serviceCode = serviceCode;
      return this;
    }
  
     /**
     * 服务code
     * @return serviceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2019121121000102523089", value = "服务code")
  
    public String getServiceCode() {
      return serviceCode;
    }
  
  
    public void setServiceCode(String serviceCode) {
      this.serviceCode = serviceCode;
    }
  
  
    public SearchOrderDetailData serviceName(String serviceName) {
      
      this.serviceName = serviceName;
      return this;
    }
  
     /**
     * 服务名
     * @return serviceName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "服务名", value = "服务名")
  
    public String getServiceName() {
      return serviceName;
    }
  
  
    public void setServiceName(String serviceName) {
      this.serviceName = serviceName;
    }
  
  
    public SearchOrderDetailData status(String status) {
      
      this.status = status;
      return this;
    }
  
     /**
     * 申请单状态 AGREE、REJECT、AUDIT
     * @return status
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "AUDIT", value = "申请单状态 AGREE、REJECT、AUDIT")
  
    public String getStatus() {
      return status;
    }
  
  
    public void setStatus(String status) {
      this.status = status;
    }
  
  
    public SearchOrderDetailData subServiceCode(String subServiceCode) {
      
      this.subServiceCode = subServiceCode;
      return this;
    }
  
     /**
     * 二级服务code
     * @return subServiceCode
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2019121121000102523089", value = "二级服务code")
  
    public String getSubServiceCode() {
      return subServiceCode;
    }
  
  
    public void setSubServiceCode(String subServiceCode) {
      this.subServiceCode = subServiceCode;
    }
  
  
    public SearchOrderDetailData templateId(String templateId) {
      
      this.templateId = templateId;
      return this;
    }
  
     /**
     * 模板Id
     * @return templateId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "WALLET-SEARCH@boxFunctionCommon", value = "模板Id")
  
    public String getTemplateId() {
      return templateId;
    }
  
  
    public void setTemplateId(String templateId) {
      this.templateId = templateId;
    }
  
  
    public SearchOrderDetailData templateName(String templateName) {
      
      this.templateName = templateName;
      return this;
    }
  
     /**
     * 模板名称
     * @return templateName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "二级服务菜单直达", value = "模板名称")
  
    public String getTemplateName() {
      return templateName;
    }
  
  
    public void setTemplateName(String templateName) {
      this.templateName = templateName;
    }
  
    /**
     * 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 SearchOrderDetailData instance itself
     */
    public SearchOrderDetailData 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;
      }
      SearchOrderDetailData searchOrderDetailData = (SearchOrderDetailData) o;
      return Objects.equals(this.accessType, searchOrderDetailData.accessType) &&
          Objects.equals(this.appCategory, searchOrderDetailData.appCategory) &&
          Objects.equals(this.appIcon, searchOrderDetailData.appIcon) &&
          Objects.equals(this.appName, searchOrderDetailData.appName) &&
          Objects.equals(this.appStatus, searchOrderDetailData.appStatus) &&
          Objects.equals(this.appid, searchOrderDetailData.appid) &&
          Objects.equals(this.baseOrderStatus, searchOrderDetailData.baseOrderStatus) &&
          Objects.equals(this.bizId, searchOrderDetailData.bizId) &&
          Objects.equals(this.boxOrderStatus, searchOrderDetailData.boxOrderStatus) &&
          Objects.equals(this.boxStatus, searchOrderDetailData.boxStatus) &&
          Objects.equals(this.brandTemplateId, searchOrderDetailData.brandTemplateId) &&
          Objects.equals(this.brandboxOrderstatus, searchOrderDetailData.brandboxOrderstatus) &&
          Objects.equals(this.canModifyKeyword, searchOrderDetailData.canModifyKeyword) &&
          Objects.equals(this.describe, searchOrderDetailData.describe) &&
          Objects.equals(this.detailBaseItems, searchOrderDetailData.detailBaseItems) &&
          Objects.equals(this.detailBrandItems, searchOrderDetailData.detailBrandItems) &&
          Objects.equals(this.detailServiceItems, searchOrderDetailData.detailServiceItems) &&
          Objects.equals(this.finalStatus, searchOrderDetailData.finalStatus) &&
          Objects.equals(this.gmtmodified, searchOrderDetailData.gmtmodified) &&
          Objects.equals(this.keywordGmtModified, searchOrderDetailData.keywordGmtModified) &&
          Objects.equals(this.onlineTime, searchOrderDetailData.onlineTime) &&
          Objects.equals(this.operatorType, searchOrderDetailData.operatorType) &&
          Objects.equals(this.orderId, searchOrderDetailData.orderId) &&
          Objects.equals(this.partnerType, searchOrderDetailData.partnerType) &&
          Objects.equals(this.rejectNode, searchOrderDetailData.rejectNode) &&
          Objects.equals(this.rejectReason, searchOrderDetailData.rejectReason) &&
          Objects.equals(this.sceneCode, searchOrderDetailData.sceneCode) &&
          Objects.equals(this.sceneName, searchOrderDetailData.sceneName) &&
          Objects.equals(this.serviceCode, searchOrderDetailData.serviceCode) &&
          Objects.equals(this.serviceName, searchOrderDetailData.serviceName) &&
          Objects.equals(this.status, searchOrderDetailData.status) &&
          Objects.equals(this.subServiceCode, searchOrderDetailData.subServiceCode) &&
          Objects.equals(this.templateId, searchOrderDetailData.templateId) &&
          Objects.equals(this.templateName, searchOrderDetailData.templateName)&&
          Objects.equals(this.additionalProperties, searchOrderDetailData.additionalProperties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(accessType, appCategory, appIcon, appName, appStatus, appid, baseOrderStatus, bizId, boxOrderStatus, boxStatus, brandTemplateId, brandboxOrderstatus, canModifyKeyword, describe, detailBaseItems, detailBrandItems, detailServiceItems, finalStatus, gmtmodified, keywordGmtModified, onlineTime, operatorType, orderId, partnerType, rejectNode, rejectReason, sceneCode, sceneName, serviceCode, serviceName, status, subServiceCode, templateId, templateName, additionalProperties);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class SearchOrderDetailData {\n");
      sb.append("    accessType: ").append(toIndentedString(accessType)).append("\n");
      sb.append("    appCategory: ").append(toIndentedString(appCategory)).append("\n");
      sb.append("    appIcon: ").append(toIndentedString(appIcon)).append("\n");
      sb.append("    appName: ").append(toIndentedString(appName)).append("\n");
      sb.append("    appStatus: ").append(toIndentedString(appStatus)).append("\n");
      sb.append("    appid: ").append(toIndentedString(appid)).append("\n");
      sb.append("    baseOrderStatus: ").append(toIndentedString(baseOrderStatus)).append("\n");
      sb.append("    bizId: ").append(toIndentedString(bizId)).append("\n");
      sb.append("    boxOrderStatus: ").append(toIndentedString(boxOrderStatus)).append("\n");
      sb.append("    boxStatus: ").append(toIndentedString(boxStatus)).append("\n");
      sb.append("    brandTemplateId: ").append(toIndentedString(brandTemplateId)).append("\n");
      sb.append("    brandboxOrderstatus: ").append(toIndentedString(brandboxOrderstatus)).append("\n");
      sb.append("    canModifyKeyword: ").append(toIndentedString(canModifyKeyword)).append("\n");
      sb.append("    describe: ").append(toIndentedString(describe)).append("\n");
      sb.append("    detailBaseItems: ").append(toIndentedString(detailBaseItems)).append("\n");
      sb.append("    detailBrandItems: ").append(toIndentedString(detailBrandItems)).append("\n");
      sb.append("    detailServiceItems: ").append(toIndentedString(detailServiceItems)).append("\n");
      sb.append("    finalStatus: ").append(toIndentedString(finalStatus)).append("\n");
      sb.append("    gmtmodified: ").append(toIndentedString(gmtmodified)).append("\n");
      sb.append("    keywordGmtModified: ").append(toIndentedString(keywordGmtModified)).append("\n");
      sb.append("    onlineTime: ").append(toIndentedString(onlineTime)).append("\n");
      sb.append("    operatorType: ").append(toIndentedString(operatorType)).append("\n");
      sb.append("    orderId: ").append(toIndentedString(orderId)).append("\n");
      sb.append("    partnerType: ").append(toIndentedString(partnerType)).append("\n");
      sb.append("    rejectNode: ").append(toIndentedString(rejectNode)).append("\n");
      sb.append("    rejectReason: ").append(toIndentedString(rejectReason)).append("\n");
      sb.append("    sceneCode: ").append(toIndentedString(sceneCode)).append("\n");
      sb.append("    sceneName: ").append(toIndentedString(sceneName)).append("\n");
      sb.append("    serviceCode: ").append(toIndentedString(serviceCode)).append("\n");
      sb.append("    serviceName: ").append(toIndentedString(serviceName)).append("\n");
      sb.append("    status: ").append(toIndentedString(status)).append("\n");
      sb.append("    subServiceCode: ").append(toIndentedString(subServiceCode)).append("\n");
      sb.append("    templateId: ").append(toIndentedString(templateId)).append("\n");
      sb.append("    templateName: ").append(toIndentedString(templateName)).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("access_type");
      openapiFields.add("app_category");
      openapiFields.add("app_icon");
      openapiFields.add("app_name");
      openapiFields.add("app_status");
      openapiFields.add("appid");
      openapiFields.add("base_order_status");
      openapiFields.add("biz_id");
      openapiFields.add("box_order_status");
      openapiFields.add("box_status");
      openapiFields.add("brand_template_id");
      openapiFields.add("brandbox_orderstatus");
      openapiFields.add("can_modify_keyword");
      openapiFields.add("describe");
      openapiFields.add("detail_base_items");
      openapiFields.add("detail_brand_items");
      openapiFields.add("detail_service_items");
      openapiFields.add("final_status");
      openapiFields.add("gmtmodified");
      openapiFields.add("keyword_gmt_modified");
      openapiFields.add("online_time");
      openapiFields.add("operator_type");
      openapiFields.add("order_id");
      openapiFields.add("partner_type");
      openapiFields.add("reject_node");
      openapiFields.add("reject_reason");
      openapiFields.add("scene_code");
      openapiFields.add("scene_name");
      openapiFields.add("service_code");
      openapiFields.add("service_name");
      openapiFields.add("status");
      openapiFields.add("sub_service_code");
      openapiFields.add("template_id");
      openapiFields.add("template_name");
  
      // 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 SearchOrderDetailData
    */
    public static void validateJsonObject(JsonObject jsonObj) throws IOException {
        if (jsonObj == null) {
          if (SearchOrderDetailData.openapiRequiredFields.isEmpty()) {
            return;
          } else { // has required fields
            throw new IllegalArgumentException(String.format("The required field(s) %s in SearchOrderDetailData is not found in the empty JSON string", SearchOrderDetailData.openapiRequiredFields.toString()));
          }
        }
        if (jsonObj.get("access_type") != null && !jsonObj.get("access_type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `access_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("access_type").toString()));
        }
        if (jsonObj.get("app_category") != null && !jsonObj.get("app_category").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `app_category` to be a primitive type in the JSON string but got `%s`", jsonObj.get("app_category").toString()));
        }
        if (jsonObj.get("app_icon") != null && !jsonObj.get("app_icon").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `app_icon` to be a primitive type in the JSON string but got `%s`", jsonObj.get("app_icon").toString()));
        }
        if (jsonObj.get("app_name") != null && !jsonObj.get("app_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `app_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("app_name").toString()));
        }
        if (jsonObj.get("app_status") != null && !jsonObj.get("app_status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `app_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("app_status").toString()));
        }
        if (jsonObj.get("appid") != null && !jsonObj.get("appid").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `appid` to be a primitive type in the JSON string but got `%s`", jsonObj.get("appid").toString()));
        }
        // validate the optional field `base_order_status`
        if (jsonObj.getAsJsonObject("base_order_status") != null) {
          OrderStatusData.validateJsonObject(jsonObj.getAsJsonObject("base_order_status"));
        }
        if (jsonObj.get("biz_id") != null && !jsonObj.get("biz_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `biz_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("biz_id").toString()));
        }
        // validate the optional field `box_order_status`
        if (jsonObj.getAsJsonObject("box_order_status") != null) {
          OrderStatusData.validateJsonObject(jsonObj.getAsJsonObject("box_order_status"));
        }
        if (jsonObj.get("box_status") != null && !jsonObj.get("box_status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `box_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("box_status").toString()));
        }
        if (jsonObj.get("brand_template_id") != null && !jsonObj.get("brand_template_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `brand_template_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("brand_template_id").toString()));
        }
        // validate the optional field `brandbox_orderstatus`
        if (jsonObj.getAsJsonObject("brandbox_orderstatus") != null) {
          OrderStatusData.validateJsonObject(jsonObj.getAsJsonObject("brandbox_orderstatus"));
        }
        if (jsonObj.get("describe") != null && !jsonObj.get("describe").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `describe` to be a primitive type in the JSON string but got `%s`", jsonObj.get("describe").toString()));
        }
        // validate the optional field `detail_base_items`
        if (jsonObj.getAsJsonObject("detail_base_items") != null) {
          SearchOrderDetailDataBaseItems.validateJsonObject(jsonObj.getAsJsonObject("detail_base_items"));
        }
        // validate the optional field `detail_brand_items`
        if (jsonObj.getAsJsonObject("detail_brand_items") != null) {
          SearchOrderDetailDataBrandItems.validateJsonObject(jsonObj.getAsJsonObject("detail_brand_items"));
        }
        // validate the optional field `detail_service_items`
        if (jsonObj.getAsJsonObject("detail_service_items") != null) {
          SearchOrderDetailDataServiceItems.validateJsonObject(jsonObj.getAsJsonObject("detail_service_items"));
        }
        if (jsonObj.get("final_status") != null && !jsonObj.get("final_status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `final_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("final_status").toString()));
        }
        if (jsonObj.get("gmtmodified") != null && !jsonObj.get("gmtmodified").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `gmtmodified` to be a primitive type in the JSON string but got `%s`", jsonObj.get("gmtmodified").toString()));
        }
        if (jsonObj.get("keyword_gmt_modified") != null && !jsonObj.get("keyword_gmt_modified").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `keyword_gmt_modified` to be a primitive type in the JSON string but got `%s`", jsonObj.get("keyword_gmt_modified").toString()));
        }
        if (jsonObj.get("online_time") != null && !jsonObj.get("online_time").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `online_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("online_time").toString()));
        }
        if (jsonObj.get("operator_type") != null && !jsonObj.get("operator_type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `operator_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("operator_type").toString()));
        }
        if (jsonObj.get("order_id") != null && !jsonObj.get("order_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `order_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("order_id").toString()));
        }
        if (jsonObj.get("partner_type") != null && !jsonObj.get("partner_type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `partner_type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("partner_type").toString()));
        }
        if (jsonObj.get("reject_node") != null && !jsonObj.get("reject_node").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `reject_node` to be a primitive type in the JSON string but got `%s`", jsonObj.get("reject_node").toString()));
        }
        if (jsonObj.get("reject_reason") != null && !jsonObj.get("reject_reason").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `reject_reason` to be a primitive type in the JSON string but got `%s`", jsonObj.get("reject_reason").toString()));
        }
        if (jsonObj.get("scene_code") != null && !jsonObj.get("scene_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `scene_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("scene_code").toString()));
        }
        if (jsonObj.get("scene_name") != null && !jsonObj.get("scene_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `scene_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("scene_name").toString()));
        }
        if (jsonObj.get("service_code") != null && !jsonObj.get("service_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `service_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("service_code").toString()));
        }
        if (jsonObj.get("service_name") != null && !jsonObj.get("service_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `service_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("service_name").toString()));
        }
        if (jsonObj.get("status") != null && !jsonObj.get("status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("status").toString()));
        }
        if (jsonObj.get("sub_service_code") != null && !jsonObj.get("sub_service_code").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `sub_service_code` to be a primitive type in the JSON string but got `%s`", jsonObj.get("sub_service_code").toString()));
        }
        if (jsonObj.get("template_id") != null && !jsonObj.get("template_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `template_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("template_id").toString()));
        }
        if (jsonObj.get("template_name") != null && !jsonObj.get("template_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `template_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("template_name").toString()));
        }
    }
  
    public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
      @SuppressWarnings("unchecked")
      @Override
      public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
         if (!SearchOrderDetailData.class.isAssignableFrom(type.getRawType())) {
           return null; // this class only serializes 'SearchOrderDetailData' and its subtypes
         }
         final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
         final TypeAdapter<SearchOrderDetailData> thisAdapter
                          = gson.getDelegateAdapter(this, TypeToken.get(SearchOrderDetailData.class));
  
         return (TypeAdapter<T>) new TypeAdapter<SearchOrderDetailData>() {
             @Override
             public void write(JsonWriter out, SearchOrderDetailData 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 SearchOrderDetailData read(JsonReader in) throws IOException {
               JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
               validateJsonObject(jsonObj);
               // store additional fields in the deserialized instance
               SearchOrderDetailData 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 SearchOrderDetailData given an JSON string
    *
    * @param jsonString JSON string
    * @return An instance of SearchOrderDetailData
    * @throws IOException if the JSON string is invalid with respect to SearchOrderDetailData
    */
    public static SearchOrderDetailData fromJson(String jsonString) throws IOException {
      return JSON.getGson().fromJson(jsonString, SearchOrderDetailData.class);
    }
  
   /**
    * Convert an instance of SearchOrderDetailData to an JSON string
    *
    * @return JSON string
    */
    public String toJson() {
      return JSON.getGson().toJson(this);
    }
  }
  
  