/*
 * 支付宝开放平台API
 * 支付宝开放平台v3协议文档
 *
 * The version of the OpenAPI document: 2023-08-14
 * 
 *
 * 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;

/**
 * AlipayEcoMycarParkingChargeinfoSyncModel
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class AlipayEcoMycarParkingChargeinfoSyncModel {
  public static final String SERIALIZED_NAME_BUSINESS_HOURS = "business_hours";
  @SerializedName(SERIALIZED_NAME_BUSINESS_HOURS)
  private String businessHours;

  public static final String SERIALIZED_NAME_CAR_DAYLIGHT_ADVANCED_PRICE = "car_daylight_advanced_price";
  @SerializedName(SERIALIZED_NAME_CAR_DAYLIGHT_ADVANCED_PRICE)
  private String carDaylightAdvancedPrice;

  public static final String SERIALIZED_NAME_CAR_DAYLIGHT_BASE_PRICE = "car_daylight_base_price";
  @SerializedName(SERIALIZED_NAME_CAR_DAYLIGHT_BASE_PRICE)
  private String carDaylightBasePrice;

  public static final String SERIALIZED_NAME_CAR_NIGHT_ADVANCED_PRICE = "car_night_advanced_price";
  @SerializedName(SERIALIZED_NAME_CAR_NIGHT_ADVANCED_PRICE)
  private String carNightAdvancedPrice;

  public static final String SERIALIZED_NAME_CAR_NIGHT_BASE_PRICE = "car_night_base_price";
  @SerializedName(SERIALIZED_NAME_CAR_NIGHT_BASE_PRICE)
  private String carNightBasePrice;

  public static final String SERIALIZED_NAME_CAR_ONETIME_PRICE = "car_onetime_price";
  @SerializedName(SERIALIZED_NAME_CAR_ONETIME_PRICE)
  private String carOnetimePrice;

  public static final String SERIALIZED_NAME_DAILY_PRICE_UPPERBOUND = "daily_price_upperbound";
  @SerializedName(SERIALIZED_NAME_DAILY_PRICE_UPPERBOUND)
  private String dailyPriceUpperbound;

  public static final String SERIALIZED_NAME_DAYLIGHT_BUSINESS_HOURS = "daylight_business_hours";
  @SerializedName(SERIALIZED_NAME_DAYLIGHT_BUSINESS_HOURS)
  private String daylightBusinessHours;

  public static final String SERIALIZED_NAME_FREE_PERIOD = "free_period";
  @SerializedName(SERIALIZED_NAME_FREE_PERIOD)
  private String freePeriod;

  public static final String SERIALIZED_NAME_HAS_CHARGING_PILE = "has_charging_pile";
  @SerializedName(SERIALIZED_NAME_HAS_CHARGING_PILE)
  private String hasChargingPile;

  public static final String SERIALIZED_NAME_IS_CHARGE = "is_charge";
  @SerializedName(SERIALIZED_NAME_IS_CHARGE)
  private String isCharge;

  public static final String SERIALIZED_NAME_NIGHT_BUSINESS_HOURS = "night_business_hours";
  @SerializedName(SERIALIZED_NAME_NIGHT_BUSINESS_HOURS)
  private String nightBusinessHours;

  public static final String SERIALIZED_NAME_PARKING_ID = "parking_id";
  @SerializedName(SERIALIZED_NAME_PARKING_ID)
  private String parkingId;

  public static final String SERIALIZED_NAME_PARKING_SPACE_COUNT = "parking_space_count";
  @SerializedName(SERIALIZED_NAME_PARKING_SPACE_COUNT)
  private Integer parkingSpaceCount;

  public static final String SERIALIZED_NAME_REMARK = "remark";
  @SerializedName(SERIALIZED_NAME_REMARK)
  private String remark;

  public static final String SERIALIZED_NAME_TRUCK_DAYLIGHT_ADVANCED_PRICE = "truck_daylight_advanced_price";
  @SerializedName(SERIALIZED_NAME_TRUCK_DAYLIGHT_ADVANCED_PRICE)
  private String truckDaylightAdvancedPrice;

  public static final String SERIALIZED_NAME_TRUCK_DAYLIGHT_BASE_PRICE = "truck_daylight_base_price";
  @SerializedName(SERIALIZED_NAME_TRUCK_DAYLIGHT_BASE_PRICE)
  private String truckDaylightBasePrice;

  public static final String SERIALIZED_NAME_TRUCK_NIGHT_ADVANCED_PRICE = "truck_night_advanced_price";
  @SerializedName(SERIALIZED_NAME_TRUCK_NIGHT_ADVANCED_PRICE)
  private String truckNightAdvancedPrice;

  public static final String SERIALIZED_NAME_TRUCK_NIGHT_BASE_PRICE = "truck_night_base_price";
  @SerializedName(SERIALIZED_NAME_TRUCK_NIGHT_BASE_PRICE)
  private String truckNightBasePrice;

  public static final String SERIALIZED_NAME_TRUCK_ONETIME_PRICE = "truck_onetime_price";
  @SerializedName(SERIALIZED_NAME_TRUCK_ONETIME_PRICE)
  private String truckOnetimePrice;

  public AlipayEcoMycarParkingChargeinfoSyncModel() { 
  }

  public AlipayEcoMycarParkingChargeinfoSyncModel businessHours(String businessHours) {
    
    this.businessHours = businessHours;
    return this;
  }

   /**
   * 营业时间
   * @return businessHours
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "24小时", value = "营业时间")

  public String getBusinessHours() {
    return businessHours;
  }


  public void setBusinessHours(String businessHours) {
    this.businessHours = businessHours;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel carDaylightAdvancedPrice(String carDaylightAdvancedPrice) {
    
    this.carDaylightAdvancedPrice = carDaylightAdvancedPrice;
    return this;
  }

   /**
   * 小车-白天 非首个计费单元价格
   * @return carDaylightAdvancedPrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "3元/小时或1.5元/30分钟", value = "小车-白天 非首个计费单元价格")

  public String getCarDaylightAdvancedPrice() {
    return carDaylightAdvancedPrice;
  }


  public void setCarDaylightAdvancedPrice(String carDaylightAdvancedPrice) {
    this.carDaylightAdvancedPrice = carDaylightAdvancedPrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel carDaylightBasePrice(String carDaylightBasePrice) {
    
    this.carDaylightBasePrice = carDaylightBasePrice;
    return this;
  }

   /**
   * 小车-白天 首个计费单元价格
   * @return carDaylightBasePrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10元/1小时或5元/30分钟", value = "小车-白天 首个计费单元价格")

  public String getCarDaylightBasePrice() {
    return carDaylightBasePrice;
  }


  public void setCarDaylightBasePrice(String carDaylightBasePrice) {
    this.carDaylightBasePrice = carDaylightBasePrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel carNightAdvancedPrice(String carNightAdvancedPrice) {
    
    this.carNightAdvancedPrice = carNightAdvancedPrice;
    return this;
  }

   /**
   * 小车-夜间 非首个计费单元价格
   * @return carNightAdvancedPrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "3元/小时或1.5元/30分钟", value = "小车-夜间 非首个计费单元价格")

  public String getCarNightAdvancedPrice() {
    return carNightAdvancedPrice;
  }


  public void setCarNightAdvancedPrice(String carNightAdvancedPrice) {
    this.carNightAdvancedPrice = carNightAdvancedPrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel carNightBasePrice(String carNightBasePrice) {
    
    this.carNightBasePrice = carNightBasePrice;
    return this;
  }

   /**
   * 小车-夜间 首个计费单元价格
   * @return carNightBasePrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10元/1小时或5元/30分钟", value = "小车-夜间 首个计费单元价格")

  public String getCarNightBasePrice() {
    return carNightBasePrice;
  }


  public void setCarNightBasePrice(String carNightBasePrice) {
    this.carNightBasePrice = carNightBasePrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel carOnetimePrice(String carOnetimePrice) {
    
    this.carOnetimePrice = carOnetimePrice;
    return this;
  }

   /**
   * 小车 计次收费价格  xx元 / 次，按次收费的车场填写
   * @return carOnetimePrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "20元/次", value = "小车 计次收费价格  xx元 / 次，按次收费的车场填写")

  public String getCarOnetimePrice() {
    return carOnetimePrice;
  }


  public void setCarOnetimePrice(String carOnetimePrice) {
    this.carOnetimePrice = carOnetimePrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel dailyPriceUpperbound(String dailyPriceUpperbound) {
    
    this.dailyPriceUpperbound = dailyPriceUpperbound;
    return this;
  }

   /**
   * 单日停车封顶价格：具体值或“不封顶”
   * @return dailyPriceUpperbound
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "260元或不封顶", value = "单日停车封顶价格：具体值或“不封顶”")

  public String getDailyPriceUpperbound() {
    return dailyPriceUpperbound;
  }


  public void setDailyPriceUpperbound(String dailyPriceUpperbound) {
    this.dailyPriceUpperbound = dailyPriceUpperbound;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel daylightBusinessHours(String daylightBusinessHours) {
    
    this.daylightBusinessHours = daylightBusinessHours;
    return this;
  }

   /**
   * 车场白天（收费）营业时间段
   * @return daylightBusinessHours
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "9:00-21:00", value = "车场白天（收费）营业时间段")

  public String getDaylightBusinessHours() {
    return daylightBusinessHours;
  }


  public void setDaylightBusinessHours(String daylightBusinessHours) {
    this.daylightBusinessHours = daylightBusinessHours;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel freePeriod(String freePeriod) {
    
    this.freePeriod = freePeriod;
    return this;
  }

   /**
   * 单次停车免费时长
   * @return freePeriod
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "30分钟", value = "单次停车免费时长")

  public String getFreePeriod() {
    return freePeriod;
  }


  public void setFreePeriod(String freePeriod) {
    this.freePeriod = freePeriod;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel hasChargingPile(String hasChargingPile) {
    
    this.hasChargingPile = hasChargingPile;
    return this;
  }

   /**
   * 是否有充电桩: -1 未知,0 否,1 是
   * @return hasChargingPile
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "是否有充电桩: -1 未知,0 否,1 是")

  public String getHasChargingPile() {
    return hasChargingPile;
  }


  public void setHasChargingPile(String hasChargingPile) {
    this.hasChargingPile = hasChargingPile;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel isCharge(String isCharge) {
    
    this.isCharge = isCharge;
    return this;
  }

   /**
   * 是否收费：-1 未知,0 否,1 是
   * @return isCharge
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1", value = "是否收费：-1 未知,0 否,1 是")

  public String getIsCharge() {
    return isCharge;
  }


  public void setIsCharge(String isCharge) {
    this.isCharge = isCharge;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel nightBusinessHours(String nightBusinessHours) {
    
    this.nightBusinessHours = nightBusinessHours;
    return this;
  }

   /**
   * 车场夜间（收费）营业时间段
   * @return nightBusinessHours
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "21:00-9:00", value = "车场夜间（收费）营业时间段")

  public String getNightBusinessHours() {
    return nightBusinessHours;
  }


  public void setNightBusinessHours(String nightBusinessHours) {
    this.nightBusinessHours = nightBusinessHours;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel parkingId(String parkingId) {
    
    this.parkingId = parkingId;
    return this;
  }

   /**
   * 停车场ID
   * @return parkingId
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "PI20190506152394234234", value = "停车场ID")

  public String getParkingId() {
    return parkingId;
  }


  public void setParkingId(String parkingId) {
    this.parkingId = parkingId;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel parkingSpaceCount(Integer parkingSpaceCount) {
    
    this.parkingSpaceCount = parkingSpaceCount;
    return this;
  }

   /**
   * 总车位数
   * @return parkingSpaceCount
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "1600", value = "总车位数")

  public Integer getParkingSpaceCount() {
    return parkingSpaceCount;
  }


  public void setParkingSpaceCount(Integer parkingSpaceCount) {
    this.parkingSpaceCount = parkingSpaceCount;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel remark(String remark) {
    
    this.remark = remark;
    return this;
  }

   /**
   * 复杂计费补充描述  收费复杂无法格式化的车场填写，以文本形式表述
   * @return remark
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "前3小时XXX，3-6小时之间XXX，超过6小时XXXX", value = "复杂计费补充描述  收费复杂无法格式化的车场填写，以文本形式表述")

  public String getRemark() {
    return remark;
  }


  public void setRemark(String remark) {
    this.remark = remark;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel truckDaylightAdvancedPrice(String truckDaylightAdvancedPrice) {
    
    this.truckDaylightAdvancedPrice = truckDaylightAdvancedPrice;
    return this;
  }

   /**
   * 大车-白天 非首个计费单元价格
   * @return truckDaylightAdvancedPrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "3元/小时或1.5元/30分钟", value = "大车-白天 非首个计费单元价格")

  public String getTruckDaylightAdvancedPrice() {
    return truckDaylightAdvancedPrice;
  }


  public void setTruckDaylightAdvancedPrice(String truckDaylightAdvancedPrice) {
    this.truckDaylightAdvancedPrice = truckDaylightAdvancedPrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel truckDaylightBasePrice(String truckDaylightBasePrice) {
    
    this.truckDaylightBasePrice = truckDaylightBasePrice;
    return this;
  }

   /**
   * 大车-白天 首个计费单元价格
   * @return truckDaylightBasePrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "10元/1小时或5元/30分钟", value = "大车-白天 首个计费单元价格")

  public String getTruckDaylightBasePrice() {
    return truckDaylightBasePrice;
  }


  public void setTruckDaylightBasePrice(String truckDaylightBasePrice) {
    this.truckDaylightBasePrice = truckDaylightBasePrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel truckNightAdvancedPrice(String truckNightAdvancedPrice) {
    
    this.truckNightAdvancedPrice = truckNightAdvancedPrice;
    return this;
  }

   /**
   * 大车-夜间 非首个计费单元价格
   * @return truckNightAdvancedPrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "4元/次", value = "大车-夜间 非首个计费单元价格")

  public String getTruckNightAdvancedPrice() {
    return truckNightAdvancedPrice;
  }


  public void setTruckNightAdvancedPrice(String truckNightAdvancedPrice) {
    this.truckNightAdvancedPrice = truckNightAdvancedPrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel truckNightBasePrice(String truckNightBasePrice) {
    
    this.truckNightBasePrice = truckNightBasePrice;
    return this;
  }

   /**
   * 大车-夜间 首个计费单元价格
   * @return truckNightBasePrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "3元/小时或1.5元/30分钟", value = "大车-夜间 首个计费单元价格")

  public String getTruckNightBasePrice() {
    return truckNightBasePrice;
  }


  public void setTruckNightBasePrice(String truckNightBasePrice) {
    this.truckNightBasePrice = truckNightBasePrice;
  }


  public AlipayEcoMycarParkingChargeinfoSyncModel truckOnetimePrice(String truckOnetimePrice) {
    
    this.truckOnetimePrice = truckOnetimePrice;
    return this;
  }

   /**
   * 大车 计次收费价格  xx元 / 次，按次收费的车场填写
   * @return truckOnetimePrice
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(example = "30元/次", value = "大车 计次收费价格  xx元 / 次，按次收费的车场填写")

  public String getTruckOnetimePrice() {
    return truckOnetimePrice;
  }


  public void setTruckOnetimePrice(String truckOnetimePrice) {
    this.truckOnetimePrice = truckOnetimePrice;
  }



  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    AlipayEcoMycarParkingChargeinfoSyncModel alipayEcoMycarParkingChargeinfoSyncModel = (AlipayEcoMycarParkingChargeinfoSyncModel) o;
    return Objects.equals(this.businessHours, alipayEcoMycarParkingChargeinfoSyncModel.businessHours) &&
        Objects.equals(this.carDaylightAdvancedPrice, alipayEcoMycarParkingChargeinfoSyncModel.carDaylightAdvancedPrice) &&
        Objects.equals(this.carDaylightBasePrice, alipayEcoMycarParkingChargeinfoSyncModel.carDaylightBasePrice) &&
        Objects.equals(this.carNightAdvancedPrice, alipayEcoMycarParkingChargeinfoSyncModel.carNightAdvancedPrice) &&
        Objects.equals(this.carNightBasePrice, alipayEcoMycarParkingChargeinfoSyncModel.carNightBasePrice) &&
        Objects.equals(this.carOnetimePrice, alipayEcoMycarParkingChargeinfoSyncModel.carOnetimePrice) &&
        Objects.equals(this.dailyPriceUpperbound, alipayEcoMycarParkingChargeinfoSyncModel.dailyPriceUpperbound) &&
        Objects.equals(this.daylightBusinessHours, alipayEcoMycarParkingChargeinfoSyncModel.daylightBusinessHours) &&
        Objects.equals(this.freePeriod, alipayEcoMycarParkingChargeinfoSyncModel.freePeriod) &&
        Objects.equals(this.hasChargingPile, alipayEcoMycarParkingChargeinfoSyncModel.hasChargingPile) &&
        Objects.equals(this.isCharge, alipayEcoMycarParkingChargeinfoSyncModel.isCharge) &&
        Objects.equals(this.nightBusinessHours, alipayEcoMycarParkingChargeinfoSyncModel.nightBusinessHours) &&
        Objects.equals(this.parkingId, alipayEcoMycarParkingChargeinfoSyncModel.parkingId) &&
        Objects.equals(this.parkingSpaceCount, alipayEcoMycarParkingChargeinfoSyncModel.parkingSpaceCount) &&
        Objects.equals(this.remark, alipayEcoMycarParkingChargeinfoSyncModel.remark) &&
        Objects.equals(this.truckDaylightAdvancedPrice, alipayEcoMycarParkingChargeinfoSyncModel.truckDaylightAdvancedPrice) &&
        Objects.equals(this.truckDaylightBasePrice, alipayEcoMycarParkingChargeinfoSyncModel.truckDaylightBasePrice) &&
        Objects.equals(this.truckNightAdvancedPrice, alipayEcoMycarParkingChargeinfoSyncModel.truckNightAdvancedPrice) &&
        Objects.equals(this.truckNightBasePrice, alipayEcoMycarParkingChargeinfoSyncModel.truckNightBasePrice) &&
        Objects.equals(this.truckOnetimePrice, alipayEcoMycarParkingChargeinfoSyncModel.truckOnetimePrice);
  }

  @Override
  public int hashCode() {
    return Objects.hash(businessHours, carDaylightAdvancedPrice, carDaylightBasePrice, carNightAdvancedPrice, carNightBasePrice, carOnetimePrice, dailyPriceUpperbound, daylightBusinessHours, freePeriod, hasChargingPile, isCharge, nightBusinessHours, parkingId, parkingSpaceCount, remark, truckDaylightAdvancedPrice, truckDaylightBasePrice, truckNightAdvancedPrice, truckNightBasePrice, truckOnetimePrice);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class AlipayEcoMycarParkingChargeinfoSyncModel {\n");
    sb.append("    businessHours: ").append(toIndentedString(businessHours)).append("\n");
    sb.append("    carDaylightAdvancedPrice: ").append(toIndentedString(carDaylightAdvancedPrice)).append("\n");
    sb.append("    carDaylightBasePrice: ").append(toIndentedString(carDaylightBasePrice)).append("\n");
    sb.append("    carNightAdvancedPrice: ").append(toIndentedString(carNightAdvancedPrice)).append("\n");
    sb.append("    carNightBasePrice: ").append(toIndentedString(carNightBasePrice)).append("\n");
    sb.append("    carOnetimePrice: ").append(toIndentedString(carOnetimePrice)).append("\n");
    sb.append("    dailyPriceUpperbound: ").append(toIndentedString(dailyPriceUpperbound)).append("\n");
    sb.append("    daylightBusinessHours: ").append(toIndentedString(daylightBusinessHours)).append("\n");
    sb.append("    freePeriod: ").append(toIndentedString(freePeriod)).append("\n");
    sb.append("    hasChargingPile: ").append(toIndentedString(hasChargingPile)).append("\n");
    sb.append("    isCharge: ").append(toIndentedString(isCharge)).append("\n");
    sb.append("    nightBusinessHours: ").append(toIndentedString(nightBusinessHours)).append("\n");
    sb.append("    parkingId: ").append(toIndentedString(parkingId)).append("\n");
    sb.append("    parkingSpaceCount: ").append(toIndentedString(parkingSpaceCount)).append("\n");
    sb.append("    remark: ").append(toIndentedString(remark)).append("\n");
    sb.append("    truckDaylightAdvancedPrice: ").append(toIndentedString(truckDaylightAdvancedPrice)).append("\n");
    sb.append("    truckDaylightBasePrice: ").append(toIndentedString(truckDaylightBasePrice)).append("\n");
    sb.append("    truckNightAdvancedPrice: ").append(toIndentedString(truckNightAdvancedPrice)).append("\n");
    sb.append("    truckNightBasePrice: ").append(toIndentedString(truckNightBasePrice)).append("\n");
    sb.append("    truckOnetimePrice: ").append(toIndentedString(truckOnetimePrice)).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("business_hours");
    openapiFields.add("car_daylight_advanced_price");
    openapiFields.add("car_daylight_base_price");
    openapiFields.add("car_night_advanced_price");
    openapiFields.add("car_night_base_price");
    openapiFields.add("car_onetime_price");
    openapiFields.add("daily_price_upperbound");
    openapiFields.add("daylight_business_hours");
    openapiFields.add("free_period");
    openapiFields.add("has_charging_pile");
    openapiFields.add("is_charge");
    openapiFields.add("night_business_hours");
    openapiFields.add("parking_id");
    openapiFields.add("parking_space_count");
    openapiFields.add("remark");
    openapiFields.add("truck_daylight_advanced_price");
    openapiFields.add("truck_daylight_base_price");
    openapiFields.add("truck_night_advanced_price");
    openapiFields.add("truck_night_base_price");
    openapiFields.add("truck_onetime_price");

    // 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 AlipayEcoMycarParkingChargeinfoSyncModel
  */
  public static void validateJsonObject(JsonObject jsonObj) throws IOException {
      if (jsonObj == null) {
        if (AlipayEcoMycarParkingChargeinfoSyncModel.openapiRequiredFields.isEmpty()) {
          return;
        } else { // has required fields
          throw new IllegalArgumentException(String.format("The required field(s) %s in AlipayEcoMycarParkingChargeinfoSyncModel is not found in the empty JSON string", AlipayEcoMycarParkingChargeinfoSyncModel.openapiRequiredFields.toString()));
        }
      }

      Set<Entry<String, JsonElement>> entries = jsonObj.entrySet();
      // check to see if the JSON string contains additional fields
      for (Entry<String, JsonElement> entry : entries) {
        if (!AlipayEcoMycarParkingChargeinfoSyncModel.openapiFields.contains(entry.getKey())) {
          throw new IllegalArgumentException(String.format("The field `%s` in the JSON string is not defined in the `AlipayEcoMycarParkingChargeinfoSyncModel` properties. JSON: %s", entry.getKey(), jsonObj.toString()));
        }
      }
      if (jsonObj.get("business_hours") != null && !jsonObj.get("business_hours").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `business_hours` to be a primitive type in the JSON string but got `%s`", jsonObj.get("business_hours").toString()));
      }
      if (jsonObj.get("car_daylight_advanced_price") != null && !jsonObj.get("car_daylight_advanced_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `car_daylight_advanced_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("car_daylight_advanced_price").toString()));
      }
      if (jsonObj.get("car_daylight_base_price") != null && !jsonObj.get("car_daylight_base_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `car_daylight_base_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("car_daylight_base_price").toString()));
      }
      if (jsonObj.get("car_night_advanced_price") != null && !jsonObj.get("car_night_advanced_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `car_night_advanced_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("car_night_advanced_price").toString()));
      }
      if (jsonObj.get("car_night_base_price") != null && !jsonObj.get("car_night_base_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `car_night_base_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("car_night_base_price").toString()));
      }
      if (jsonObj.get("car_onetime_price") != null && !jsonObj.get("car_onetime_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `car_onetime_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("car_onetime_price").toString()));
      }
      if (jsonObj.get("daily_price_upperbound") != null && !jsonObj.get("daily_price_upperbound").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `daily_price_upperbound` to be a primitive type in the JSON string but got `%s`", jsonObj.get("daily_price_upperbound").toString()));
      }
      if (jsonObj.get("daylight_business_hours") != null && !jsonObj.get("daylight_business_hours").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `daylight_business_hours` to be a primitive type in the JSON string but got `%s`", jsonObj.get("daylight_business_hours").toString()));
      }
      if (jsonObj.get("free_period") != null && !jsonObj.get("free_period").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `free_period` to be a primitive type in the JSON string but got `%s`", jsonObj.get("free_period").toString()));
      }
      if (jsonObj.get("has_charging_pile") != null && !jsonObj.get("has_charging_pile").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `has_charging_pile` to be a primitive type in the JSON string but got `%s`", jsonObj.get("has_charging_pile").toString()));
      }
      if (jsonObj.get("is_charge") != null && !jsonObj.get("is_charge").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `is_charge` to be a primitive type in the JSON string but got `%s`", jsonObj.get("is_charge").toString()));
      }
      if (jsonObj.get("night_business_hours") != null && !jsonObj.get("night_business_hours").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `night_business_hours` to be a primitive type in the JSON string but got `%s`", jsonObj.get("night_business_hours").toString()));
      }
      if (jsonObj.get("parking_id") != null && !jsonObj.get("parking_id").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `parking_id` to be a primitive type in the JSON string but got `%s`", jsonObj.get("parking_id").toString()));
      }
      if (jsonObj.get("remark") != null && !jsonObj.get("remark").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `remark` to be a primitive type in the JSON string but got `%s`", jsonObj.get("remark").toString()));
      }
      if (jsonObj.get("truck_daylight_advanced_price") != null && !jsonObj.get("truck_daylight_advanced_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `truck_daylight_advanced_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("truck_daylight_advanced_price").toString()));
      }
      if (jsonObj.get("truck_daylight_base_price") != null && !jsonObj.get("truck_daylight_base_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `truck_daylight_base_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("truck_daylight_base_price").toString()));
      }
      if (jsonObj.get("truck_night_advanced_price") != null && !jsonObj.get("truck_night_advanced_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `truck_night_advanced_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("truck_night_advanced_price").toString()));
      }
      if (jsonObj.get("truck_night_base_price") != null && !jsonObj.get("truck_night_base_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `truck_night_base_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("truck_night_base_price").toString()));
      }
      if (jsonObj.get("truck_onetime_price") != null && !jsonObj.get("truck_onetime_price").isJsonPrimitive()) {
        throw new IllegalArgumentException(String.format("Expected the field `truck_onetime_price` to be a primitive type in the JSON string but got `%s`", jsonObj.get("truck_onetime_price").toString()));
      }
  }

  public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
    @SuppressWarnings("unchecked")
    @Override
    public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
       if (!AlipayEcoMycarParkingChargeinfoSyncModel.class.isAssignableFrom(type.getRawType())) {
         return null; // this class only serializes 'AlipayEcoMycarParkingChargeinfoSyncModel' and its subtypes
       }
       final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
       final TypeAdapter<AlipayEcoMycarParkingChargeinfoSyncModel> thisAdapter
                        = gson.getDelegateAdapter(this, TypeToken.get(AlipayEcoMycarParkingChargeinfoSyncModel.class));

       return (TypeAdapter<T>) new TypeAdapter<AlipayEcoMycarParkingChargeinfoSyncModel>() {
           @Override
           public void write(JsonWriter out, AlipayEcoMycarParkingChargeinfoSyncModel value) throws IOException {
             JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
             elementAdapter.write(out, obj);
           }

           @Override
           public AlipayEcoMycarParkingChargeinfoSyncModel read(JsonReader in) throws IOException {
             JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
             validateJsonObject(jsonObj);
             return thisAdapter.fromJsonTree(jsonObj);
           }

       }.nullSafe();
    }
  }

 /**
  * Create an instance of AlipayEcoMycarParkingChargeinfoSyncModel given an JSON string
  *
  * @param jsonString JSON string
  * @return An instance of AlipayEcoMycarParkingChargeinfoSyncModel
  * @throws IOException if the JSON string is invalid with respect to AlipayEcoMycarParkingChargeinfoSyncModel
  */
  public static AlipayEcoMycarParkingChargeinfoSyncModel fromJson(String jsonString) throws IOException {
    return JSON.getGson().fromJson(jsonString, AlipayEcoMycarParkingChargeinfoSyncModel.class);
  }

 /**
  * Convert an instance of AlipayEcoMycarParkingChargeinfoSyncModel to an JSON string
  *
  * @return JSON string
  */
  public String toJson() {
    return JSON.getGson().toJson(this);
  }
}

