# RevenueSchedulerDTO.java

    package cloud.wconnect.rateshop.pojo.dto.revenue;

    import lombok.Data;
    import org.hibernate.validator.constraints.Range;

    import jakarta.validation.constraints.NotBlank;
    import jakarta.validation.constraints.NotNull;

    /**
     * DTO：scheduler
     *
     * @author: yyt
     * 2024-03-14
     */
    @Data
    public class RevenueSchedulerDTO {

        /**
         * 定时任务 id
         */
        private String id;

        /**
         * 类型 ( 1:history and forecast,2:business block,3:reservation statistics,
         * 4:reservation forecast,5:reservation forecast next month,6:history forecast next month,
         * 8: Reservations Forecast Next 14 days,9:History and Forecast Next 90 days,10:Market Code, 11:Occ jump alert，
         * 12：History and Forecast this month，13：History and Forecast next month，14：History and Forecast the month after next，
         * 16：Reservation Forecast next 90 days，17：History and Forecast Business Block next 90 days 23：History and Forecast from thirty days ago to yesterday,
         * 24: reservation forecast this month）
         */
        @NotNull(message = "the category must not be null")
        @Range(min = 1, max = 24, message = "the category must in [1: history and forecast report missing, 2: business block report missing, 3: reservation statistics report missing," +
                " 4: reservation forecast report missing, 5: reservation forecast next month report missing, 6: history forecast next month report missing, " +
                " 8: Reservations Forecast Next 14 days, 9:History and Forecast Next 90 days, 10:Market Code, 11:Occ Jump Alert, " +
                "12：History and Forecast this month，13：History and Forecast next month，14：History and Forecast the month after next，" +
                "16：Reservation Forecast next 90 days，17：History and Forecast Business Block next 90 days," +
                "19：Manager flash, 20：Detailed Availability Next 14 days, 21：Rate Review notify, 22: Group Pickup, 23：History and Forecast from thirty days ago to yesterday report missing," +
                "24: reservation forecast this month]")
        private Integer category;

        /**
         * 触发时间规则（目前支持配置按天执行；样例：{"everyDay":{"hour":1,"minute":2}}）
         */
        @NotBlank(message = "the scheduler must not be blank")
        private String scheduler;

        /**
         * 开始时间，0表示立即生效
         */
        @NotNull(message = "the startDate must not be null")
        private Long startDate;

        /**
         * 0:停止；1:启动；
         */
        @NotNull(message = "the status must not be null")
        @Range(min = 0, max = 1, message = "the status must in [0:stop, 1:start]")
        private Integer status;

        /**
         * 拓展参数
         * history and forecast 报告 报告缺失时，该json为：{ "threshold": 90 }；
         * business block 报告 报告缺失时，该json为：{ "threshold": 96 }；
         * reservation statistics 报告 报告缺失时，该json为：{ "threshold": 98 }；
         * reservation forecast 报告 报告缺失时，该json为：{ "threshold": 100 }；
         * reservation forecast next month 报告 报告缺失时，该json为：{ "threshold": 92 }；
         * history and forecast next month 报告 报告缺失时，该json为：{ "threshold": 93 }；
         * History and forecast from thirty days ago to yesterday 报告，报告缺失时，该json为：{ "dateRange": "-30,-1", "dateRangeUnit": 1, "threshold": 120}
         * threshold表示数据过期条件，单位为分钟。
         */
        private String parameters;

    }