All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.huaweicloud.sdk.meeting.v1.model.CycleParams Maven / Gradle / Ivy

package com.huaweicloud.sdk.meeting.v1.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;

/** 周期参数 */
public class CycleParams {

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "startDate")

    private String startDate;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "endDate")

    private String endDate;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "cycle")

    private String cycle;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "interval")

    private Integer interval;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "point")

    private List point = null;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty(value = "preRemindDays")

    private Integer preRemindDays;

    public CycleParams withStartDate(String startDate) {
        this.startDate = startDate;
        return this;
    }

    /** 周期会议的开始日期,格式:YYYY-MM-DD。 开始日期不能早于当前日期。
     * 
     * @return startDate */
    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public CycleParams withEndDate(String endDate) {
        this.endDate = endDate;
        return this;
    }

    /** 周期会议的结束日期,格式:YYYY-MM-DD。 开始日期和结束日期间的时间间隔最长不能超过1年。 开始日期和结束日期之间最多允许50个子会议,若超过50个子会议,会自动调整结束日期。
     * 
     * @return endDate */
    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public CycleParams withCycle(String cycle) {
        this.cycle = cycle;
        return this;
    }

    /** 周期类型。 - Day: 天。 - Week: 星期。 - Month: 月。
     * 
     * @return cycle */
    public String getCycle() {
        return cycle;
    }

    public void setCycle(String cycle) {
        this.cycle = cycle;
    }

    public CycleParams withInterval(Integer interval) {
        this.interval = interval;
        return this;
    }

    /** - cycle选择了Day,表示每几天召开一次,取值范围[1,15] - cycle选择了Week,表示每几周召开一次,取值范围[1,5] - cycle选择了Month,Interval表示隔几月,取值范围[1,3]
     * 
     * @return interval */
    public Integer getInterval() {
        return interval;
    }

    public void setInterval(Integer interval) {
        this.interval = interval;
    }

    public CycleParams withPoint(List point) {
        this.point = point;
        return this;
    }

    public CycleParams addPointItem(Integer pointItem) {
        if (this.point == null) {
            this.point = new ArrayList<>();
        }
        this.point.add(pointItem);
        return this;
    }

    public CycleParams withPoint(Consumer> pointSetter) {
        if (this.point == null) {
            this.point = new ArrayList<>();
        }
        pointSetter.accept(this.point);
        return this;
    }

    /** 周期内的会议召开点。仅当按周和月时有效。 - cycle选择了Week,poInt中填入了两个元素1和3,则表示每个周一和周三召开会议,0表示周日。 -
     * cycle选择了Month,poInt中填入了12和20则表示每个月的12号和20号召开会议,取值范围为[1,31],若当月没有该值,则为月末。
     * 
     * @return point */
    public List getPoint() {
        return point;
    }

    public void setPoint(List point) {
        this.point = point;
    }

    public CycleParams withPreRemindDays(Integer preRemindDays) {
        this.preRemindDays = preRemindDays;
        return this;
    }

    /** 支持用户指定提前会议通知的天数N,预订人收到整个周期会议的通知,所有与会人在每个子会议召开时间的前N天收到会议通知(包括日历)。
     * 天数N的输入根据间隔期进行自动调整,如果按日每隔2天召开,则N自动变为2,如果为按周每2周的周一、周二,则N自动变为14。 约束:暂不考虑夏令时处理。 取值范围[0,30]。 default: 1 minimum: 0
     * maximum: 30
     * 
     * @return preRemindDays */
    public Integer getPreRemindDays() {
        return preRemindDays;
    }

    public void setPreRemindDays(Integer preRemindDays) {
        this.preRemindDays = preRemindDays;
    }

    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        CycleParams cycleParams = (CycleParams) o;
        return Objects.equals(this.startDate, cycleParams.startDate)
            && Objects.equals(this.endDate, cycleParams.endDate) && Objects.equals(this.cycle, cycleParams.cycle)
            && Objects.equals(this.interval, cycleParams.interval) && Objects.equals(this.point, cycleParams.point)
            && Objects.equals(this.preRemindDays, cycleParams.preRemindDays);
    }

    @Override
    public int hashCode() {
        return Objects.hash(startDate, endDate, cycle, interval, point, preRemindDays);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class CycleParams {\n");
        sb.append("    startDate: ").append(toIndentedString(startDate)).append("\n");
        sb.append("    endDate: ").append(toIndentedString(endDate)).append("\n");
        sb.append("    cycle: ").append(toIndentedString(cycle)).append("\n");
        sb.append("    interval: ").append(toIndentedString(interval)).append("\n");
        sb.append("    point: ").append(toIndentedString(point)).append("\n");
        sb.append("    preRemindDays: ").append(toIndentedString(preRemindDays)).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(java.lang.Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy