package org.wfc.omada.api.sitesetting.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import java.util.Objects;

/**
 * Time range profile schedule time config
 */
@ApiModel(description = "Time range profile schedule time config")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:32:19.054+08:00[Asia/Shanghai]")

public class ScheduleTimeOpenApiVo   {
  @JsonProperty("dayType")
  private Integer dayType;

  @JsonProperty("startTimeH")
  private Integer startTimeH;

  @JsonProperty("startTimeM")
  private Integer startTimeM;

  @JsonProperty("endTimeH")
  private Integer endTimeH;

  @JsonProperty("endTimeM")
  private Integer endTimeM;

  public ScheduleTimeOpenApiVo dayType(Integer dayType) {
    this.dayType = dayType;
    return this;
  }

  /**
   * Time range schedule time day type, 1 to 7 indicates Monday to Sunday, if parameter [dayMode] is 0 to 2, the input value for this field should be 0.
   * @return dayType
  */
  @ApiModelProperty(required = true, value = "Time range schedule time day type, 1 to 7 indicates Monday to Sunday, if parameter [dayMode] is 0 to 2, the input value for this field should be 0.")
  @NotNull


  public Integer getDayType() {
    return dayType;
  }

  public void setDayType(Integer dayType) {
    this.dayType = dayType;
  }

  public ScheduleTimeOpenApiVo startTimeH(Integer startTimeH) {
    this.startTimeH = startTimeH;
    return this;
  }

  /**
   * Time range schedule start time (unit: hour); It should be within the range of 0–24.
   * @return startTimeH
  */
  @ApiModelProperty(required = true, value = "Time range schedule start time (unit: hour); It should be within the range of 0–24.")
  @NotNull


  public Integer getStartTimeH() {
    return startTimeH;
  }

  public void setStartTimeH(Integer startTimeH) {
    this.startTimeH = startTimeH;
  }

  public ScheduleTimeOpenApiVo startTimeM(Integer startTimeM) {
    this.startTimeM = startTimeM;
    return this;
  }

  /**
   * Time range schedule start time (unit: minute); It should be a value as follows: [0, 15, 30, 45].
   * @return startTimeM
  */
  @ApiModelProperty(required = true, value = "Time range schedule start time (unit: minute); It should be a value as follows: [0, 15, 30, 45].")
  @NotNull


  public Integer getStartTimeM() {
    return startTimeM;
  }

  public void setStartTimeM(Integer startTimeM) {
    this.startTimeM = startTimeM;
  }

  public ScheduleTimeOpenApiVo endTimeH(Integer endTimeH) {
    this.endTimeH = endTimeH;
    return this;
  }

  /**
   * Time range schedule end time (unit: hour); It should be within the range of 0–24.
   * @return endTimeH
  */
  @ApiModelProperty(required = true, value = "Time range schedule end time (unit: hour); It should be within the range of 0–24.")
  @NotNull


  public Integer getEndTimeH() {
    return endTimeH;
  }

  public void setEndTimeH(Integer endTimeH) {
    this.endTimeH = endTimeH;
  }

  public ScheduleTimeOpenApiVo endTimeM(Integer endTimeM) {
    this.endTimeM = endTimeM;
    return this;
  }

  /**
   * Time range schedule end time (unit: minute); It should be a value as follows: [0, 15, 30, 45].
   * @return endTimeM
  */
  @ApiModelProperty(required = true, value = "Time range schedule end time (unit: minute); It should be a value as follows: [0, 15, 30, 45].")
  @NotNull


  public Integer getEndTimeM() {
    return endTimeM;
  }

  public void setEndTimeM(Integer endTimeM) {
    this.endTimeM = endTimeM;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ScheduleTimeOpenApiVo scheduleTimeOpenApiVo = (ScheduleTimeOpenApiVo) o;
    return Objects.equals(this.dayType, scheduleTimeOpenApiVo.dayType) &&
        Objects.equals(this.startTimeH, scheduleTimeOpenApiVo.startTimeH) &&
        Objects.equals(this.startTimeM, scheduleTimeOpenApiVo.startTimeM) &&
        Objects.equals(this.endTimeH, scheduleTimeOpenApiVo.endTimeH) &&
        Objects.equals(this.endTimeM, scheduleTimeOpenApiVo.endTimeM);
  }

  @Override
  public int hashCode() {
    return Objects.hash(dayType, startTimeH, startTimeM, endTimeH, endTimeM);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ScheduleTimeOpenApiVo {\n");
    
    sb.append("    dayType: ").append(toIndentedString(dayType)).append("\n");
    sb.append("    startTimeH: ").append(toIndentedString(startTimeH)).append("\n");
    sb.append("    startTimeM: ").append(toIndentedString(startTimeM)).append("\n");
    sb.append("    endTimeH: ").append(toIndentedString(endTimeH)).append("\n");
    sb.append("    endTimeM: ").append(toIndentedString(endTimeM)).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    ");
  }
}

