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;
  
  /**
   * JobWorthJobdata
   */
  @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
  public class JobWorthJobdata {
    public static final String SERIALIZED_NAME_CERTIFICATE_GRANT_INSTITUTION = "certificate_grant_institution";
    @SerializedName(SERIALIZED_NAME_CERTIFICATE_GRANT_INSTITUTION)
    private String certificateGrantInstitution;
  
    public static final String SERIALIZED_NAME_CERTIFICATE_ID = "certificate_id";
    @SerializedName(SERIALIZED_NAME_CERTIFICATE_ID)
    private String certificateId;
  
    public static final String SERIALIZED_NAME_CERTIFICATE_LEVEL = "certificate_level";
    @SerializedName(SERIALIZED_NAME_CERTIFICATE_LEVEL)
    private String certificateLevel;
  
    public static final String SERIALIZED_NAME_CERTIFICATE_NAME = "certificate_name";
    @SerializedName(SERIALIZED_NAME_CERTIFICATE_NAME)
    private String certificateName;
  
    public static final String SERIALIZED_NAME_CERTIFICATE_PIC_ID = "certificate_pic_id";
    @SerializedName(SERIALIZED_NAME_CERTIFICATE_PIC_ID)
    private String certificatePicId;
  
    public static final String SERIALIZED_NAME_COMPANY_NAME = "company_name";
    @SerializedName(SERIALIZED_NAME_COMPANY_NAME)
    private String companyName;
  
    public static final String SERIALIZED_NAME_DEGREE = "degree";
    @SerializedName(SERIALIZED_NAME_DEGREE)
    private String degree;
  
    public static final String SERIALIZED_NAME_DELIVERY_POSITION_ID = "delivery_position_id";
    @SerializedName(SERIALIZED_NAME_DELIVERY_POSITION_ID)
    private String deliveryPositionId;
  
    public static final String SERIALIZED_NAME_DELIVERY_TIME = "delivery_time";
    @SerializedName(SERIALIZED_NAME_DELIVERY_TIME)
    private Integer deliveryTime;
  
    public static final String SERIALIZED_NAME_EDUCATION_STATUS = "education_status";
    @SerializedName(SERIALIZED_NAME_EDUCATION_STATUS)
    private String educationStatus;
  
    public static final String SERIALIZED_NAME_ENTRY_NO = "entry_no";
    @SerializedName(SERIALIZED_NAME_ENTRY_NO)
    private String entryNo;
  
    public static final String SERIALIZED_NAME_EXAM_SCORE = "exam_score";
    @SerializedName(SERIALIZED_NAME_EXAM_SCORE)
    private String examScore;
  
    public static final String SERIALIZED_NAME_HEAD_PIC_ID = "head_pic_id";
    @SerializedName(SERIALIZED_NAME_HEAD_PIC_ID)
    private String headPicId;
  
    public static final String SERIALIZED_NAME_INTENTION_CITY = "intention_city";
    @SerializedName(SERIALIZED_NAME_INTENTION_CITY)
    private String intentionCity;
  
    public static final String SERIALIZED_NAME_INTENTION_CITY_NAME = "intention_city_name";
    @SerializedName(SERIALIZED_NAME_INTENTION_CITY_NAME)
    private String intentionCityName;
  
    public static final String SERIALIZED_NAME_ISSUE_DATE = "issue_date";
    @SerializedName(SERIALIZED_NAME_ISSUE_DATE)
    private String issueDate;
  
    public static final String SERIALIZED_NAME_JOB_ID = "job_id";
    @SerializedName(SERIALIZED_NAME_JOB_ID)
    private String jobId;
  
    public static final String SERIALIZED_NAME_JOB_NAME = "job_name";
    @SerializedName(SERIALIZED_NAME_JOB_NAME)
    private String jobName;
  
    public static final String SERIALIZED_NAME_KA_JOB_ID = "ka_job_id";
    @SerializedName(SERIALIZED_NAME_KA_JOB_ID)
    private String kaJobId;
  
    public static final String SERIALIZED_NAME_KA_JOB_NAME = "ka_job_name";
    @SerializedName(SERIALIZED_NAME_KA_JOB_NAME)
    private String kaJobName;
  
    public static final String SERIALIZED_NAME_KA_PROFESSION_ID = "ka_profession_id";
    @SerializedName(SERIALIZED_NAME_KA_PROFESSION_ID)
    private String kaProfessionId;
  
    public static final String SERIALIZED_NAME_KA_PROFESSION_NAME = "ka_profession_name";
    @SerializedName(SERIALIZED_NAME_KA_PROFESSION_NAME)
    private String kaProfessionName;
  
    public static final String SERIALIZED_NAME_LOCATION = "location";
    @SerializedName(SERIALIZED_NAME_LOCATION)
    private String location;
  
    public static final String SERIALIZED_NAME_MONTH = "month";
    @SerializedName(SERIALIZED_NAME_MONTH)
    private String month;
  
    public static final String SERIALIZED_NAME_ONCE_TOKEN = "once_token";
    @SerializedName(SERIALIZED_NAME_ONCE_TOKEN)
    private String onceToken;
  
    public static final String SERIALIZED_NAME_PROFESSION_ID = "profession_id";
    @SerializedName(SERIALIZED_NAME_PROFESSION_ID)
    private String professionId;
  
    public static final String SERIALIZED_NAME_PROFESSION_NAME = "profession_name";
    @SerializedName(SERIALIZED_NAME_PROFESSION_NAME)
    private String professionName;
  
    public static final String SERIALIZED_NAME_SALARY_MAX = "salary_max";
    @SerializedName(SERIALIZED_NAME_SALARY_MAX)
    private String salaryMax;
  
    public static final String SERIALIZED_NAME_SALARY_MIN = "salary_min";
    @SerializedName(SERIALIZED_NAME_SALARY_MIN)
    private String salaryMin;
  
    public static final String SERIALIZED_NAME_SALARY_UNIT = "salary_unit";
    @SerializedName(SERIALIZED_NAME_SALARY_UNIT)
    private String salaryUnit;
  
    public static final String SERIALIZED_NAME_SCHOOL_NAME = "school_name";
    @SerializedName(SERIALIZED_NAME_SCHOOL_NAME)
    private String schoolName;
  
    public static final String SERIALIZED_NAME_SKILL_NAME = "skill_name";
    @SerializedName(SERIALIZED_NAME_SKILL_NAME)
    private String skillName;
  
    public static final String SERIALIZED_NAME_START_TIME = "start_time";
    @SerializedName(SERIALIZED_NAME_START_TIME)
    private String startTime;
  
    public static final String SERIALIZED_NAME_TYPE = "type";
    @SerializedName(SERIALIZED_NAME_TYPE)
    private String type;
  
    public static final String SERIALIZED_NAME_VALID_DATE_END = "valid_date_end";
    @SerializedName(SERIALIZED_NAME_VALID_DATE_END)
    private String validDateEnd;
  
    public static final String SERIALIZED_NAME_VALID_DATE_START = "valid_date_start";
    @SerializedName(SERIALIZED_NAME_VALID_DATE_START)
    private String validDateStart;
  
    public static final String SERIALIZED_NAME_VERIFY_STATUS = "verify_status";
    @SerializedName(SERIALIZED_NAME_VERIFY_STATUS)
    private String verifyStatus;
  
    public static final String SERIALIZED_NAME_WORK_DESC = "work_desc";
    @SerializedName(SERIALIZED_NAME_WORK_DESC)
    private String workDesc;
  
    public static final String SERIALIZED_NAME_WORK_END_TIME = "work_end_time";
    @SerializedName(SERIALIZED_NAME_WORK_END_TIME)
    private String workEndTime;
  
    public static final String SERIALIZED_NAME_WORK_PLACE = "work_place";
    @SerializedName(SERIALIZED_NAME_WORK_PLACE)
    private String workPlace;
  
    public static final String SERIALIZED_NAME_WORK_PROPERTY = "work_property";
    @SerializedName(SERIALIZED_NAME_WORK_PROPERTY)
    private String workProperty;
  
    public static final String SERIALIZED_NAME_WORK_START_TIME = "work_start_time";
    @SerializedName(SERIALIZED_NAME_WORK_START_TIME)
    private String workStartTime;
  
    public static final String SERIALIZED_NAME_YEAR = "year";
    @SerializedName(SERIALIZED_NAME_YEAR)
    private String year;
  
    public JobWorthJobdata() { 
    }
  
    public JobWorthJobdata certificateGrantInstitution(String certificateGrantInstitution) {
      
      this.certificateGrantInstitution = certificateGrantInstitution;
      return this;
    }
  
     /**
     * 证书发证机构
     * @return certificateGrantInstitution
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "浙江省杭州市西湖区红十字会", value = "证书发证机构")
  
    public String getCertificateGrantInstitution() {
      return certificateGrantInstitution;
    }
  
  
    public void setCertificateGrantInstitution(String certificateGrantInstitution) {
      this.certificateGrantInstitution = certificateGrantInstitution;
    }
  
  
    public JobWorthJobdata certificateId(String certificateId) {
      
      this.certificateId = certificateId;
      return this;
    }
  
     /**
     * 证书编号
     * @return certificateId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "abcd12345678", value = "证书编号")
  
    public String getCertificateId() {
      return certificateId;
    }
  
  
    public void setCertificateId(String certificateId) {
      this.certificateId = certificateId;
    }
  
  
    public JobWorthJobdata certificateLevel(String certificateLevel) {
      
      this.certificateLevel = certificateLevel;
      return this;
    }
  
     /**
     * 证书等级：中文
     * @return certificateLevel
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "初级", value = "证书等级：中文")
  
    public String getCertificateLevel() {
      return certificateLevel;
    }
  
  
    public void setCertificateLevel(String certificateLevel) {
      this.certificateLevel = certificateLevel;
    }
  
  
    public JobWorthJobdata certificateName(String certificateName) {
      
      this.certificateName = certificateName;
      return this;
    }
  
     /**
     * 证书名称
     * @return certificateName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "健康管理师", value = "证书名称")
  
    public String getCertificateName() {
      return certificateName;
    }
  
  
    public void setCertificateName(String certificateName) {
      this.certificateName = certificateName;
    }
  
  
    public JobWorthJobdata certificatePicId(String certificatePicId) {
      
      this.certificatePicId = certificatePicId;
      return this;
    }
  
     /**
     * 工作证图片上传接口返回的id
     * @return certificatePicId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "abcd12345678", value = "工作证图片上传接口返回的id")
  
    public String getCertificatePicId() {
      return certificatePicId;
    }
  
  
    public void setCertificatePicId(String certificatePicId) {
      this.certificatePicId = certificatePicId;
    }
  
  
    public JobWorthJobdata companyName(String companyName) {
      
      this.companyName = companyName;
      return this;
    }
  
     /**
     * 公司名称
     * @return companyName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "上海依多企业管理有限公司", value = "公司名称")
  
    public String getCompanyName() {
      return companyName;
    }
  
  
    public void setCompanyName(String companyName) {
      this.companyName = companyName;
    }
  
  
    public JobWorthJobdata degree(String degree) {
      
      this.degree = degree;
      return this;
    }
  
     /**
     * 学历，可以用以下字段HIGHSCHOOL_AND_BELOW（高中及以下），POLYTECHNIC（中专），COLLEGE（大专），BACHELOR（本科），MASTER（硕士），DOCTOR_AND_ABOVE（博士及以上）
     * @return degree
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "BACHELOR", value = "学历，可以用以下字段HIGHSCHOOL_AND_BELOW（高中及以下），POLYTECHNIC（中专），COLLEGE（大专），BACHELOR（本科），MASTER（硕士），DOCTOR_AND_ABOVE（博士及以上）")
  
    public String getDegree() {
      return degree;
    }
  
  
    public void setDegree(String degree) {
      this.degree = degree;
    }
  
  
    public JobWorthJobdata deliveryPositionId(String deliveryPositionId) {
      
      this.deliveryPositionId = deliveryPositionId;
      return this;
    }
  
     /**
     * 商户侧投递岗位id
     * @return deliveryPositionId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "xxxxx", value = "商户侧投递岗位id")
  
    public String getDeliveryPositionId() {
      return deliveryPositionId;
    }
  
  
    public void setDeliveryPositionId(String deliveryPositionId) {
      this.deliveryPositionId = deliveryPositionId;
    }
  
  
    public JobWorthJobdata deliveryTime(Integer deliveryTime) {
      
      this.deliveryTime = deliveryTime;
      return this;
    }
  
     /**
     * 投递时间戳
     * @return deliveryTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "9999", value = "投递时间戳")
  
    public Integer getDeliveryTime() {
      return deliveryTime;
    }
  
  
    public void setDeliveryTime(Integer deliveryTime) {
      this.deliveryTime = deliveryTime;
    }
  
  
    public JobWorthJobdata educationStatus(String educationStatus) {
      
      this.educationStatus = educationStatus;
      return this;
    }
  
     /**
     * 教育状态只有两种，GRADUATE(毕业)，STUDY（未毕业）
     * @return educationStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "GRADUATE", value = "教育状态只有两种，GRADUATE(毕业)，STUDY（未毕业）")
  
    public String getEducationStatus() {
      return educationStatus;
    }
  
  
    public void setEducationStatus(String educationStatus) {
      this.educationStatus = educationStatus;
    }
  
  
    public JobWorthJobdata entryNo(String entryNo) {
      
      this.entryNo = entryNo;
      return this;
    }
  
     /**
     * 报名流水号
     * @return entryNo
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1235446", value = "报名流水号")
  
    public String getEntryNo() {
      return entryNo;
    }
  
  
    public void setEntryNo(String entryNo) {
      this.entryNo = entryNo;
    }
  
  
    public JobWorthJobdata examScore(String examScore) {
      
      this.examScore = examScore;
      return this;
    }
  
     /**
     * 考试分数
     * @return examScore
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "85", value = "考试分数")
  
    public String getExamScore() {
      return examScore;
    }
  
  
    public void setExamScore(String examScore) {
      this.examScore = examScore;
    }
  
  
    public JobWorthJobdata headPicId(String headPicId) {
      
      this.headPicId = headPicId;
      return this;
    }
  
     /**
     * 工作证图片上传接口返回的id
     * @return headPicId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "abcd123456", value = "工作证图片上传接口返回的id")
  
    public String getHeadPicId() {
      return headPicId;
    }
  
  
    public void setHeadPicId(String headPicId) {
      this.headPicId = headPicId;
    }
  
  
    public JobWorthJobdata intentionCity(String intentionCity) {
      
      this.intentionCity = intentionCity;
      return this;
    }
  
     /**
     * 求职意向，城市的adccode  例如110000（北京市）
     * @return intentionCity
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "110000", value = "求职意向，城市的adccode  例如110000（北京市）")
  
    public String getIntentionCity() {
      return intentionCity;
    }
  
  
    public void setIntentionCity(String intentionCity) {
      this.intentionCity = intentionCity;
    }
  
  
    public JobWorthJobdata intentionCityName(String intentionCityName) {
      
      this.intentionCityName = intentionCityName;
      return this;
    }
  
     /**
     * 意向城市名，例如北京市，传入北京即可，大理白族自治州，传入大理即可
     * @return intentionCityName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "北京", value = "意向城市名，例如北京市，传入北京即可，大理白族自治州，传入大理即可")
  
    public String getIntentionCityName() {
      return intentionCityName;
    }
  
  
    public void setIntentionCityName(String intentionCityName) {
      this.intentionCityName = intentionCityName;
    }
  
  
    public JobWorthJobdata issueDate(String issueDate) {
      
      this.issueDate = issueDate;
      return this;
    }
  
     /**
     * 发证日期，ms时间戳
     * @return issueDate
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1668743509506", value = "发证日期，ms时间戳")
  
    public String getIssueDate() {
      return issueDate;
    }
  
  
    public void setIssueDate(String issueDate) {
      this.issueDate = issueDate;
    }
  
  
    public JobWorthJobdata jobId(String jobId) {
      
      this.jobId = jobId;
      return this;
    }
  
     /**
     * 岗位对应的职业id，字段参考https://www.yuque.com/wx3dkp/gwckr4/bs03t3
     * @return jobId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "5278A2C2001", value = "岗位对应的职业id，字段参考https://www.yuque.com/wx3dkp/gwckr4/bs03t3")
  
    public String getJobId() {
      return jobId;
    }
  
  
    public void setJobId(String jobId) {
      this.jobId = jobId;
    }
  
  
    public JobWorthJobdata jobName(String jobName) {
      
      this.jobName = jobName;
      return this;
    }
  
     /**
     * 职业名称
     * @return jobName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "后端开发", value = "职业名称")
  
    public String getJobName() {
      return jobName;
    }
  
  
    public void setJobName(String jobName) {
      this.jobName = jobName;
    }
  
  
    public JobWorthJobdata kaJobId(String kaJobId) {
      
      this.kaJobId = kaJobId;
      return this;
    }
  
     /**
     * 商户职业Id
     * @return kaJobId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "abc123", value = "商户职业Id")
  
    public String getKaJobId() {
      return kaJobId;
    }
  
  
    public void setKaJobId(String kaJobId) {
      this.kaJobId = kaJobId;
    }
  
  
    public JobWorthJobdata kaJobName(String kaJobName) {
      
      this.kaJobName = kaJobName;
      return this;
    }
  
     /**
     * 商户职业名称
     * @return kaJobName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "电工", value = "商户职业名称")
  
    public String getKaJobName() {
      return kaJobName;
    }
  
  
    public void setKaJobName(String kaJobName) {
      this.kaJobName = kaJobName;
    }
  
  
    public JobWorthJobdata kaProfessionId(String kaProfessionId) {
      
      this.kaProfessionId = kaProfessionId;
      return this;
    }
  
     /**
     * 商户行业Id
     * @return kaProfessionId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "abc", value = "商户行业Id")
  
    public String getKaProfessionId() {
      return kaProfessionId;
    }
  
  
    public void setKaProfessionId(String kaProfessionId) {
      this.kaProfessionId = kaProfessionId;
    }
  
  
    public JobWorthJobdata kaProfessionName(String kaProfessionName) {
      
      this.kaProfessionName = kaProfessionName;
      return this;
    }
  
     /**
     * 商户行业名称
     * @return kaProfessionName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "建筑业", value = "商户行业名称")
  
    public String getKaProfessionName() {
      return kaProfessionName;
    }
  
  
    public void setKaProfessionName(String kaProfessionName) {
      this.kaProfessionName = kaProfessionName;
    }
  
  
    public JobWorthJobdata location(String location) {
      
      this.location = location;
      return this;
    }
  
     /**
     * 省份
     * @return location
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "浙江", value = "省份")
  
    public String getLocation() {
      return location;
    }
  
  
    public void setLocation(String location) {
      this.location = location;
    }
  
  
    public JobWorthJobdata month(String month) {
      
      this.month = month;
      return this;
    }
  
     /**
     * 毕业的月
     * @return month
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "7", value = "毕业的月")
  
    public String getMonth() {
      return month;
    }
  
  
    public void setMonth(String month) {
      this.month = month;
    }
  
  
    public JobWorthJobdata onceToken(String onceToken) {
      
      this.onceToken = onceToken;
      return this;
    }
  
     /**
     * 对应类型相关接口生成
     * @return onceToken
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "12345678qwe123", value = "对应类型相关接口生成")
  
    public String getOnceToken() {
      return onceToken;
    }
  
  
    public void setOnceToken(String onceToken) {
      this.onceToken = onceToken;
    }
  
  
    public JobWorthJobdata professionId(String professionId) {
      
      this.professionId = professionId;
      return this;
    }
  
     /**
     * 岗位对应的行业id，字段参考https://www.yuque.com/wx3dkp/gwckr4/bs03t3
     * @return professionId
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "5378A2C2", value = "岗位对应的行业id，字段参考https://www.yuque.com/wx3dkp/gwckr4/bs03t3")
  
    public String getProfessionId() {
      return professionId;
    }
  
  
    public void setProfessionId(String professionId) {
      this.professionId = professionId;
    }
  
  
    public JobWorthJobdata professionName(String professionName) {
      
      this.professionName = professionName;
      return this;
    }
  
     /**
     * 行业名称
     * @return professionName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "IT互联网", value = "行业名称")
  
    public String getProfessionName() {
      return professionName;
    }
  
  
    public void setProfessionName(String professionName) {
      this.professionName = professionName;
    }
  
  
    public JobWorthJobdata salaryMax(String salaryMax) {
      
      this.salaryMax = salaryMax;
      return this;
    }
  
     /**
     * 求职意向，薪水范围，不能低于salary_min
     * @return salaryMax
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "3000", value = "求职意向，薪水范围，不能低于salary_min")
  
    public String getSalaryMax() {
      return salaryMax;
    }
  
  
    public void setSalaryMax(String salaryMax) {
      this.salaryMax = salaryMax;
    }
  
  
    public JobWorthJobdata salaryMin(String salaryMin) {
      
      this.salaryMin = salaryMin;
      return this;
    }
  
     /**
     * 求职意向，薪水范围，不能高于salary_max
     * @return salaryMin
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1000", value = "求职意向，薪水范围，不能高于salary_max")
  
    public String getSalaryMin() {
      return salaryMin;
    }
  
  
    public void setSalaryMin(String salaryMin) {
      this.salaryMin = salaryMin;
    }
  
  
    public JobWorthJobdata salaryUnit(String salaryUnit) {
      
      this.salaryUnit = salaryUnit;
      return this;
    }
  
     /**
     * 薪资单位，元/日(DAY)、元/次(TIME)、元/月(MONTH)、元/小时(HOUR)、元/件 (NUM)、元/周 (WEEK)、其他 (OTHER)
     * @return salaryUnit
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "DAY", value = "薪资单位，元/日(DAY)、元/次(TIME)、元/月(MONTH)、元/小时(HOUR)、元/件 (NUM)、元/周 (WEEK)、其他 (OTHER)")
  
    public String getSalaryUnit() {
      return salaryUnit;
    }
  
  
    public void setSalaryUnit(String salaryUnit) {
      this.salaryUnit = salaryUnit;
    }
  
  
    public JobWorthJobdata schoolName(String schoolName) {
      
      this.schoolName = schoolName;
      return this;
    }
  
     /**
     * 学校
     * @return schoolName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "浙江大学", value = "学校")
  
    public String getSchoolName() {
      return schoolName;
    }
  
  
    public void setSchoolName(String schoolName) {
      this.schoolName = schoolName;
    }
  
  
    public JobWorthJobdata skillName(String skillName) {
      
      this.skillName = skillName;
      return this;
    }
  
     /**
     * 用英文逗号分隔，最多6项
     * @return skillName
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "木工,电工", value = "用英文逗号分隔，最多6项")
  
    public String getSkillName() {
      return skillName;
    }
  
  
    public void setSkillName(String skillName) {
      this.skillName = skillName;
    }
  
  
    public JobWorthJobdata startTime(String startTime) {
      
      this.startTime = startTime;
      return this;
    }
  
     /**
     * 参加工作的时间，格式形如 2011-07
     * @return startTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2011-07", value = "参加工作的时间，格式形如 2011-07")
  
    public String getStartTime() {
      return startTime;
    }
  
  
    public void setStartTime(String startTime) {
      this.startTime = startTime;
    }
  
  
    public JobWorthJobdata type(String type) {
      
      this.type = type;
      return this;
    }
  
     /**
     * 信息类型
     * @return type
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "certificate", value = "信息类型")
  
    public String getType() {
      return type;
    }
  
  
    public void setType(String type) {
      this.type = type;
    }
  
  
    public JobWorthJobdata validDateEnd(String validDateEnd) {
      
      this.validDateEnd = validDateEnd;
      return this;
    }
  
     /**
     * 有效期：开始结束 ms 时间戳
     * @return validDateEnd
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1668743509506", value = "有效期：开始结束 ms 时间戳")
  
    public String getValidDateEnd() {
      return validDateEnd;
    }
  
  
    public void setValidDateEnd(String validDateEnd) {
      this.validDateEnd = validDateEnd;
    }
  
  
    public JobWorthJobdata validDateStart(String validDateStart) {
      
      this.validDateStart = validDateStart;
      return this;
    }
  
     /**
     * 有效期：开始时间 ms时间戳
     * @return validDateStart
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1668743509506", value = "有效期：开始时间 ms时间戳")
  
    public String getValidDateStart() {
      return validDateStart;
    }
  
  
    public void setValidDateStart(String validDateStart) {
      this.validDateStart = validDateStart;
    }
  
  
    public JobWorthJobdata verifyStatus(String verifyStatus) {
      
      this.verifyStatus = verifyStatus;
      return this;
    }
  
     /**
     * 校验状态
     * @return verifyStatus
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "\"true\"", value = "校验状态")
  
    public String getVerifyStatus() {
      return verifyStatus;
    }
  
  
    public void setVerifyStatus(String verifyStatus) {
      this.verifyStatus = verifyStatus;
    }
  
  
    public JobWorthJobdata workDesc(String workDesc) {
      
      this.workDesc = workDesc;
      return this;
    }
  
     /**
     * 工作描述
     * @return workDesc
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "岗位职责1、负责自媒体公众号的图片创作编辑2、擅长手绘图像、漫画图像制作3、思维活跃，能够根据所给要求完成一篇情景剧的漫画图案设计4、能够配合工作需求完成工作任务岗位要求1、漫画设计功底较强，能够独立完成创作编辑2、会使用相关修图软件，能独立处理图片3、有相关工作经验优先，艺术学院在校大学生优先", value = "工作描述")
  
    public String getWorkDesc() {
      return workDesc;
    }
  
  
    public void setWorkDesc(String workDesc) {
      this.workDesc = workDesc;
    }
  
  
    public JobWorthJobdata workEndTime(String workEndTime) {
      
      this.workEndTime = workEndTime;
      return this;
    }
  
     /**
     * 工作结束时间，毫秒级时间戳
     * @return workEndTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1651138651000", value = "工作结束时间，毫秒级时间戳")
  
    public String getWorkEndTime() {
      return workEndTime;
    }
  
  
    public void setWorkEndTime(String workEndTime) {
      this.workEndTime = workEndTime;
    }
  
  
    public JobWorthJobdata workPlace(String workPlace) {
      
      this.workPlace = workPlace;
      return this;
    }
  
     /**
     * 工作经历工作地
     * @return workPlace
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "工作经历工作地", value = "工作经历工作地")
  
    public String getWorkPlace() {
      return workPlace;
    }
  
  
    public void setWorkPlace(String workPlace) {
      this.workPlace = workPlace;
    }
  
  
    public JobWorthJobdata workProperty(String workProperty) {
      
      this.workProperty = workProperty;
      return this;
    }
  
     /**
     * 岗位属性：全职(FULL_TIME)或者兼职(PART_TIME)
     * @return workProperty
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "FULL_TIME", value = "岗位属性：全职(FULL_TIME)或者兼职(PART_TIME)")
  
    public String getWorkProperty() {
      return workProperty;
    }
  
  
    public void setWorkProperty(String workProperty) {
      this.workProperty = workProperty;
    }
  
  
    public JobWorthJobdata workStartTime(String workStartTime) {
      
      this.workStartTime = workStartTime;
      return this;
    }
  
     /**
     * 工作开始时间，毫秒级时间戳
     * @return workStartTime
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "1651138484000", value = "工作开始时间，毫秒级时间戳")
  
    public String getWorkStartTime() {
      return workStartTime;
    }
  
  
    public void setWorkStartTime(String workStartTime) {
      this.workStartTime = workStartTime;
    }
  
  
    public JobWorthJobdata year(String year) {
      
      this.year = year;
      return this;
    }
  
     /**
     * 毕业的年
     * @return year
    **/
    @javax.annotation.Nullable
    @ApiModelProperty(example = "2011", value = "毕业的年")
  
    public String getYear() {
      return year;
    }
  
  
    public void setYear(String year) {
      this.year = year;
    }
  
    /**
     * 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 JobWorthJobdata instance itself
     */
    public JobWorthJobdata 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;
      }
      JobWorthJobdata jobWorthJobdata = (JobWorthJobdata) o;
      return Objects.equals(this.certificateGrantInstitution, jobWorthJobdata.certificateGrantInstitution) &&
          Objects.equals(this.certificateId, jobWorthJobdata.certificateId) &&
          Objects.equals(this.certificateLevel, jobWorthJobdata.certificateLevel) &&
          Objects.equals(this.certificateName, jobWorthJobdata.certificateName) &&
          Objects.equals(this.certificatePicId, jobWorthJobdata.certificatePicId) &&
          Objects.equals(this.companyName, jobWorthJobdata.companyName) &&
          Objects.equals(this.degree, jobWorthJobdata.degree) &&
          Objects.equals(this.deliveryPositionId, jobWorthJobdata.deliveryPositionId) &&
          Objects.equals(this.deliveryTime, jobWorthJobdata.deliveryTime) &&
          Objects.equals(this.educationStatus, jobWorthJobdata.educationStatus) &&
          Objects.equals(this.entryNo, jobWorthJobdata.entryNo) &&
          Objects.equals(this.examScore, jobWorthJobdata.examScore) &&
          Objects.equals(this.headPicId, jobWorthJobdata.headPicId) &&
          Objects.equals(this.intentionCity, jobWorthJobdata.intentionCity) &&
          Objects.equals(this.intentionCityName, jobWorthJobdata.intentionCityName) &&
          Objects.equals(this.issueDate, jobWorthJobdata.issueDate) &&
          Objects.equals(this.jobId, jobWorthJobdata.jobId) &&
          Objects.equals(this.jobName, jobWorthJobdata.jobName) &&
          Objects.equals(this.kaJobId, jobWorthJobdata.kaJobId) &&
          Objects.equals(this.kaJobName, jobWorthJobdata.kaJobName) &&
          Objects.equals(this.kaProfessionId, jobWorthJobdata.kaProfessionId) &&
          Objects.equals(this.kaProfessionName, jobWorthJobdata.kaProfessionName) &&
          Objects.equals(this.location, jobWorthJobdata.location) &&
          Objects.equals(this.month, jobWorthJobdata.month) &&
          Objects.equals(this.onceToken, jobWorthJobdata.onceToken) &&
          Objects.equals(this.professionId, jobWorthJobdata.professionId) &&
          Objects.equals(this.professionName, jobWorthJobdata.professionName) &&
          Objects.equals(this.salaryMax, jobWorthJobdata.salaryMax) &&
          Objects.equals(this.salaryMin, jobWorthJobdata.salaryMin) &&
          Objects.equals(this.salaryUnit, jobWorthJobdata.salaryUnit) &&
          Objects.equals(this.schoolName, jobWorthJobdata.schoolName) &&
          Objects.equals(this.skillName, jobWorthJobdata.skillName) &&
          Objects.equals(this.startTime, jobWorthJobdata.startTime) &&
          Objects.equals(this.type, jobWorthJobdata.type) &&
          Objects.equals(this.validDateEnd, jobWorthJobdata.validDateEnd) &&
          Objects.equals(this.validDateStart, jobWorthJobdata.validDateStart) &&
          Objects.equals(this.verifyStatus, jobWorthJobdata.verifyStatus) &&
          Objects.equals(this.workDesc, jobWorthJobdata.workDesc) &&
          Objects.equals(this.workEndTime, jobWorthJobdata.workEndTime) &&
          Objects.equals(this.workPlace, jobWorthJobdata.workPlace) &&
          Objects.equals(this.workProperty, jobWorthJobdata.workProperty) &&
          Objects.equals(this.workStartTime, jobWorthJobdata.workStartTime) &&
          Objects.equals(this.year, jobWorthJobdata.year)&&
          Objects.equals(this.additionalProperties, jobWorthJobdata.additionalProperties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(certificateGrantInstitution, certificateId, certificateLevel, certificateName, certificatePicId, companyName, degree, deliveryPositionId, deliveryTime, educationStatus, entryNo, examScore, headPicId, intentionCity, intentionCityName, issueDate, jobId, jobName, kaJobId, kaJobName, kaProfessionId, kaProfessionName, location, month, onceToken, professionId, professionName, salaryMax, salaryMin, salaryUnit, schoolName, skillName, startTime, type, validDateEnd, validDateStart, verifyStatus, workDesc, workEndTime, workPlace, workProperty, workStartTime, year, additionalProperties);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class JobWorthJobdata {\n");
      sb.append("    certificateGrantInstitution: ").append(toIndentedString(certificateGrantInstitution)).append("\n");
      sb.append("    certificateId: ").append(toIndentedString(certificateId)).append("\n");
      sb.append("    certificateLevel: ").append(toIndentedString(certificateLevel)).append("\n");
      sb.append("    certificateName: ").append(toIndentedString(certificateName)).append("\n");
      sb.append("    certificatePicId: ").append(toIndentedString(certificatePicId)).append("\n");
      sb.append("    companyName: ").append(toIndentedString(companyName)).append("\n");
      sb.append("    degree: ").append(toIndentedString(degree)).append("\n");
      sb.append("    deliveryPositionId: ").append(toIndentedString(deliveryPositionId)).append("\n");
      sb.append("    deliveryTime: ").append(toIndentedString(deliveryTime)).append("\n");
      sb.append("    educationStatus: ").append(toIndentedString(educationStatus)).append("\n");
      sb.append("    entryNo: ").append(toIndentedString(entryNo)).append("\n");
      sb.append("    examScore: ").append(toIndentedString(examScore)).append("\n");
      sb.append("    headPicId: ").append(toIndentedString(headPicId)).append("\n");
      sb.append("    intentionCity: ").append(toIndentedString(intentionCity)).append("\n");
      sb.append("    intentionCityName: ").append(toIndentedString(intentionCityName)).append("\n");
      sb.append("    issueDate: ").append(toIndentedString(issueDate)).append("\n");
      sb.append("    jobId: ").append(toIndentedString(jobId)).append("\n");
      sb.append("    jobName: ").append(toIndentedString(jobName)).append("\n");
      sb.append("    kaJobId: ").append(toIndentedString(kaJobId)).append("\n");
      sb.append("    kaJobName: ").append(toIndentedString(kaJobName)).append("\n");
      sb.append("    kaProfessionId: ").append(toIndentedString(kaProfessionId)).append("\n");
      sb.append("    kaProfessionName: ").append(toIndentedString(kaProfessionName)).append("\n");
      sb.append("    location: ").append(toIndentedString(location)).append("\n");
      sb.append("    month: ").append(toIndentedString(month)).append("\n");
      sb.append("    onceToken: ").append(toIndentedString(onceToken)).append("\n");
      sb.append("    professionId: ").append(toIndentedString(professionId)).append("\n");
      sb.append("    professionName: ").append(toIndentedString(professionName)).append("\n");
      sb.append("    salaryMax: ").append(toIndentedString(salaryMax)).append("\n");
      sb.append("    salaryMin: ").append(toIndentedString(salaryMin)).append("\n");
      sb.append("    salaryUnit: ").append(toIndentedString(salaryUnit)).append("\n");
      sb.append("    schoolName: ").append(toIndentedString(schoolName)).append("\n");
      sb.append("    skillName: ").append(toIndentedString(skillName)).append("\n");
      sb.append("    startTime: ").append(toIndentedString(startTime)).append("\n");
      sb.append("    type: ").append(toIndentedString(type)).append("\n");
      sb.append("    validDateEnd: ").append(toIndentedString(validDateEnd)).append("\n");
      sb.append("    validDateStart: ").append(toIndentedString(validDateStart)).append("\n");
      sb.append("    verifyStatus: ").append(toIndentedString(verifyStatus)).append("\n");
      sb.append("    workDesc: ").append(toIndentedString(workDesc)).append("\n");
      sb.append("    workEndTime: ").append(toIndentedString(workEndTime)).append("\n");
      sb.append("    workPlace: ").append(toIndentedString(workPlace)).append("\n");
      sb.append("    workProperty: ").append(toIndentedString(workProperty)).append("\n");
      sb.append("    workStartTime: ").append(toIndentedString(workStartTime)).append("\n");
      sb.append("    year: ").append(toIndentedString(year)).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("certificate_grant_institution");
      openapiFields.add("certificate_id");
      openapiFields.add("certificate_level");
      openapiFields.add("certificate_name");
      openapiFields.add("certificate_pic_id");
      openapiFields.add("company_name");
      openapiFields.add("degree");
      openapiFields.add("delivery_position_id");
      openapiFields.add("delivery_time");
      openapiFields.add("education_status");
      openapiFields.add("entry_no");
      openapiFields.add("exam_score");
      openapiFields.add("head_pic_id");
      openapiFields.add("intention_city");
      openapiFields.add("intention_city_name");
      openapiFields.add("issue_date");
      openapiFields.add("job_id");
      openapiFields.add("job_name");
      openapiFields.add("ka_job_id");
      openapiFields.add("ka_job_name");
      openapiFields.add("ka_profession_id");
      openapiFields.add("ka_profession_name");
      openapiFields.add("location");
      openapiFields.add("month");
      openapiFields.add("once_token");
      openapiFields.add("profession_id");
      openapiFields.add("profession_name");
      openapiFields.add("salary_max");
      openapiFields.add("salary_min");
      openapiFields.add("salary_unit");
      openapiFields.add("school_name");
      openapiFields.add("skill_name");
      openapiFields.add("start_time");
      openapiFields.add("type");
      openapiFields.add("valid_date_end");
      openapiFields.add("valid_date_start");
      openapiFields.add("verify_status");
      openapiFields.add("work_desc");
      openapiFields.add("work_end_time");
      openapiFields.add("work_place");
      openapiFields.add("work_property");
      openapiFields.add("work_start_time");
      openapiFields.add("year");
  
      // 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 JobWorthJobdata
    */
    public static void validateJsonObject(JsonObject jsonObj) throws IOException {
        if (jsonObj == null) {
          if (JobWorthJobdata.openapiRequiredFields.isEmpty()) {
            return;
          } else { // has required fields
            throw new IllegalArgumentException(String.format("The required field(s) %s in JobWorthJobdata is not found in the empty JSON string", JobWorthJobdata.openapiRequiredFields.toString()));
          }
        }
        if (jsonObj.get("certificate_grant_institution") != null && !jsonObj.get("certificate_grant_institution").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `certificate_grant_institution` to be a primitive type in the JSON string but got `%s`", jsonObj.get("certificate_grant_institution").toString()));
        }
        if (jsonObj.get("certificate_id") != null && !jsonObj.get("certificate_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `certificate_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("certificate_id").toString()));
        }
        if (jsonObj.get("certificate_level") != null && !jsonObj.get("certificate_level").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `certificate_level` to be a primitive type in the JSON string but got `%s`", jsonObj.get("certificate_level").toString()));
        }
        if (jsonObj.get("certificate_name") != null && !jsonObj.get("certificate_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `certificate_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("certificate_name").toString()));
        }
        if (jsonObj.get("certificate_pic_id") != null && !jsonObj.get("certificate_pic_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `certificate_pic_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("certificate_pic_id").toString()));
        }
        if (jsonObj.get("company_name") != null && !jsonObj.get("company_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `company_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("company_name").toString()));
        }
        if (jsonObj.get("degree") != null && !jsonObj.get("degree").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `degree` to be a primitive type in the JSON string but got `%s`", jsonObj.get("degree").toString()));
        }
        if (jsonObj.get("delivery_position_id") != null && !jsonObj.get("delivery_position_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `delivery_position_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("delivery_position_id").toString()));
        }
        if (jsonObj.get("education_status") != null && !jsonObj.get("education_status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `education_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("education_status").toString()));
        }
        if (jsonObj.get("entry_no") != null && !jsonObj.get("entry_no").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `entry_no` to be a primitive type in the JSON string but got `%s`", jsonObj.get("entry_no").toString()));
        }
        if (jsonObj.get("exam_score") != null && !jsonObj.get("exam_score").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `exam_score` to be a primitive type in the JSON string but got `%s`", jsonObj.get("exam_score").toString()));
        }
        if (jsonObj.get("head_pic_id") != null && !jsonObj.get("head_pic_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `head_pic_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("head_pic_id").toString()));
        }
        if (jsonObj.get("intention_city") != null && !jsonObj.get("intention_city").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `intention_city` to be a primitive type in the JSON string but got `%s`", jsonObj.get("intention_city").toString()));
        }
        if (jsonObj.get("intention_city_name") != null && !jsonObj.get("intention_city_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `intention_city_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("intention_city_name").toString()));
        }
        if (jsonObj.get("issue_date") != null && !jsonObj.get("issue_date").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `issue_date` to be a primitive type in the JSON string but got `%s`", jsonObj.get("issue_date").toString()));
        }
        if (jsonObj.get("job_id") != null && !jsonObj.get("job_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `job_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("job_id").toString()));
        }
        if (jsonObj.get("job_name") != null && !jsonObj.get("job_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `job_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("job_name").toString()));
        }
        if (jsonObj.get("ka_job_id") != null && !jsonObj.get("ka_job_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `ka_job_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ka_job_id").toString()));
        }
        if (jsonObj.get("ka_job_name") != null && !jsonObj.get("ka_job_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `ka_job_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ka_job_name").toString()));
        }
        if (jsonObj.get("ka_profession_id") != null && !jsonObj.get("ka_profession_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `ka_profession_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ka_profession_id").toString()));
        }
        if (jsonObj.get("ka_profession_name") != null && !jsonObj.get("ka_profession_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `ka_profession_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("ka_profession_name").toString()));
        }
        if (jsonObj.get("location") != null && !jsonObj.get("location").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `location` to be a primitive type in the JSON string but got `%s`", jsonObj.get("location").toString()));
        }
        if (jsonObj.get("month") != null && !jsonObj.get("month").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `month` to be a primitive type in the JSON string but got `%s`", jsonObj.get("month").toString()));
        }
        if (jsonObj.get("once_token") != null && !jsonObj.get("once_token").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `once_token` to be a primitive type in the JSON string but got `%s`", jsonObj.get("once_token").toString()));
        }
        if (jsonObj.get("profession_id") != null && !jsonObj.get("profession_id").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `profession_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("profession_id").toString()));
        }
        if (jsonObj.get("profession_name") != null && !jsonObj.get("profession_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `profession_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("profession_name").toString()));
        }
        if (jsonObj.get("salary_max") != null && !jsonObj.get("salary_max").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `salary_max` to be a primitive type in the JSON string but got `%s`", jsonObj.get("salary_max").toString()));
        }
        if (jsonObj.get("salary_min") != null && !jsonObj.get("salary_min").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `salary_min` to be a primitive type in the JSON string but got `%s`", jsonObj.get("salary_min").toString()));
        }
        if (jsonObj.get("salary_unit") != null && !jsonObj.get("salary_unit").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `salary_unit` to be a primitive type in the JSON string but got `%s`", jsonObj.get("salary_unit").toString()));
        }
        if (jsonObj.get("school_name") != null && !jsonObj.get("school_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `school_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("school_name").toString()));
        }
        if (jsonObj.get("skill_name") != null && !jsonObj.get("skill_name").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `skill_name` to be a primitive type in the JSON string but got `%s`", jsonObj.get("skill_name").toString()));
        }
        if (jsonObj.get("start_time") != null && !jsonObj.get("start_time").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `start_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("start_time").toString()));
        }
        if (jsonObj.get("type") != null && !jsonObj.get("type").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `type` to be a primitive type in the JSON string but got `%s`", jsonObj.get("type").toString()));
        }
        if (jsonObj.get("valid_date_end") != null && !jsonObj.get("valid_date_end").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `valid_date_end` to be a primitive type in the JSON string but got `%s`", jsonObj.get("valid_date_end").toString()));
        }
        if (jsonObj.get("valid_date_start") != null && !jsonObj.get("valid_date_start").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `valid_date_start` to be a primitive type in the JSON string but got `%s`", jsonObj.get("valid_date_start").toString()));
        }
        if (jsonObj.get("verify_status") != null && !jsonObj.get("verify_status").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `verify_status` to be a primitive type in the JSON string but got `%s`", jsonObj.get("verify_status").toString()));
        }
        if (jsonObj.get("work_desc") != null && !jsonObj.get("work_desc").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `work_desc` to be a primitive type in the JSON string but got `%s`", jsonObj.get("work_desc").toString()));
        }
        if (jsonObj.get("work_end_time") != null && !jsonObj.get("work_end_time").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `work_end_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("work_end_time").toString()));
        }
        if (jsonObj.get("work_place") != null && !jsonObj.get("work_place").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `work_place` to be a primitive type in the JSON string but got `%s`", jsonObj.get("work_place").toString()));
        }
        if (jsonObj.get("work_property") != null && !jsonObj.get("work_property").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `work_property` to be a primitive type in the JSON string but got `%s`", jsonObj.get("work_property").toString()));
        }
        if (jsonObj.get("work_start_time") != null && !jsonObj.get("work_start_time").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `work_start_time` to be a primitive type in the JSON string but got `%s`", jsonObj.get("work_start_time").toString()));
        }
        if (jsonObj.get("year") != null && !jsonObj.get("year").isJsonPrimitive()) {
          throw new IllegalArgumentException(String.format("Expected the field `year` to be a primitive type in the JSON string but got `%s`", jsonObj.get("year").toString()));
        }
    }
  
    public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
      @SuppressWarnings("unchecked")
      @Override
      public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
         if (!JobWorthJobdata.class.isAssignableFrom(type.getRawType())) {
           return null; // this class only serializes 'JobWorthJobdata' and its subtypes
         }
         final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
         final TypeAdapter<JobWorthJobdata> thisAdapter
                          = gson.getDelegateAdapter(this, TypeToken.get(JobWorthJobdata.class));
  
         return (TypeAdapter<T>) new TypeAdapter<JobWorthJobdata>() {
             @Override
             public void write(JsonWriter out, JobWorthJobdata 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 JobWorthJobdata read(JsonReader in) throws IOException {
               JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
               validateJsonObject(jsonObj);
               // store additional fields in the deserialized instance
               JobWorthJobdata 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 JobWorthJobdata given an JSON string
    *
    * @param jsonString JSON string
    * @return An instance of JobWorthJobdata
    * @throws IOException if the JSON string is invalid with respect to JobWorthJobdata
    */
    public static JobWorthJobdata fromJson(String jsonString) throws IOException {
      return JSON.getGson().fromJson(jsonString, JobWorthJobdata.class);
    }
  
   /**
    * Convert an instance of JobWorthJobdata to an JSON string
    *
    * @return JSON string
    */
    public String toJson() {
      return JSON.getGson().toJson(this);
    }
  }
  
  