package org.wfc.omada.api.msp.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;

/**
 * DST end time config
 */
@ApiModel(description = "DST end time config")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:44:08.065+08:00[Asia/Shanghai]")

public class DstTimeDto   {
  @JsonProperty("month")
  private Integer month;

  @JsonProperty("serial")
  private Integer serial;

  @JsonProperty("day")
  private Integer day;

  @JsonProperty("hour")
  private Integer hour;

  @JsonProperty("minute")
  private Integer minute;

  public DstTimeDto month(Integer month) {
    this.month = month;
    return this;
  }

  /**
   * Month of the DST config should be a value as follows: 1: January; 2: February; 3: March; 4: April; 5: May; 6: June; 7: July; 8: August; 9: September; 10: October; 11: November; 12: December.
   * @return month
  */
  @ApiModelProperty(required = true, value = "Month of the DST config should be a value as follows: 1: January; 2: February; 3: March; 4: April; 5: May; 6: June; 7: July; 8: August; 9: September; 10: October; 11: November; 12: December.")
  @NotNull


  public Integer getMonth() {
    return month;
  }

  public void setMonth(Integer month) {
    this.month = month;
  }

  public DstTimeDto serial(Integer serial) {
    this.serial = serial;
    return this;
  }

  /**
   * Week of the DST config should be a value as follows: 1: 1st; 2: 2nd; 3: 3rd; 4: 4th; 5: Last.
   * @return serial
  */
  @ApiModelProperty(required = true, value = "Week of the DST config should be a value as follows: 1: 1st; 2: 2nd; 3: 3rd; 4: 4th; 5: Last.")
  @NotNull


  public Integer getSerial() {
    return serial;
  }

  public void setSerial(Integer serial) {
    this.serial = serial;
  }

  public DstTimeDto day(Integer day) {
    this.day = day;
    return this;
  }

  /**
   * Day of the DST config should be a value as follows: 1: Monday; 2: Tuesday; 3: Wednesday; 4: Thursday; 5: Friday; 6: Saturday; 7: Sunday.
   * @return day
  */
  @ApiModelProperty(required = true, value = "Day of the DST config should be a value as follows: 1: Monday; 2: Tuesday; 3: Wednesday; 4: Thursday; 5: Friday; 6: Saturday; 7: Sunday.")
  @NotNull


  public Integer getDay() {
    return day;
  }

  public void setDay(Integer day) {
    this.day = day;
  }

  public DstTimeDto hour(Integer hour) {
    this.hour = hour;
    return this;
  }

  /**
   * Hour of the DST config should be within the range of 0–23.
   * @return hour
  */
  @ApiModelProperty(required = true, value = "Hour of the DST config should be within the range of 0–23.")
  @NotNull


  public Integer getHour() {
    return hour;
  }

  public void setHour(Integer hour) {
    this.hour = hour;
  }

  public DstTimeDto minute(Integer minute) {
    this.minute = minute;
    return this;
  }

  /**
   * Minute of the DST config should be within the range of 0–59.
   * @return minute
  */
  @ApiModelProperty(required = true, value = "Minute of the DST config should be within the range of 0–59.")
  @NotNull


  public Integer getMinute() {
    return minute;
  }

  public void setMinute(Integer minute) {
    this.minute = minute;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    DstTimeDto dstTimeDto = (DstTimeDto) o;
    return Objects.equals(this.month, dstTimeDto.month) &&
        Objects.equals(this.serial, dstTimeDto.serial) &&
        Objects.equals(this.day, dstTimeDto.day) &&
        Objects.equals(this.hour, dstTimeDto.hour) &&
        Objects.equals(this.minute, dstTimeDto.minute);
  }

  @Override
  public int hashCode() {
    return Objects.hash(month, serial, day, hour, minute);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class DstTimeDto {\n");
    
    sb.append("    month: ").append(toIndentedString(month)).append("\n");
    sb.append("    serial: ").append(toIndentedString(serial)).append("\n");
    sb.append("    day: ").append(toIndentedString(day)).append("\n");
    sb.append("    hour: ").append(toIndentedString(hour)).append("\n");
    sb.append("    minute: ").append(toIndentedString(minute)).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    ");
  }
}

