# ScheduleHistoryAndForecastBO.java

    package cloud.wconnect.workperformance.pojo.bo.schedule;

    import cloud.wconnect.commonlib.annotation.validator.DigitsCustom;
    import lombok.Data;
    import org.hibernate.validator.constraints.Range;

    import jakarta.validation.constraints.NotBlank;
    import jakarta.validation.constraints.NotNull;
    import java.math.BigDecimal;

    /**
     * BO：Schedule History And Forecast
     *
     * @author yyt
     * 2023/7/5
     */
    @Data
    public class ScheduleHistoryAndForecastBO {

        /**
         * 对应日期(如：2023-07-03)
         */
        @NotBlank(message = "the targetDate must not be blank")
        private String targetDate;

        /**
         * 入住房间数
         */
        @NotNull(message = "the arrivalRooms must not be null")
        @Range(min = 0, max = 100_0000_0000L, message = "the arrivalRooms must be 0 ~ 100_0000_0000")
        private Integer arrivalRooms;

        /**
         * 退房房间数
         */
        @NotNull(message = "the departureRooms must not be null")
        @Range(min = 0, max = 100_0000_0000L, message = "the departureRooms must be 0 ~ 100_0000_0000")
        private Integer departureRooms;

        /**
         * 卖出房间数
         */
        @NotNull(message = "the soldRooms must not be null")
        @Range(min = 0, max = 100_0000_0000L, message = "the soldRooms must be 0 ~ 100_0000_0000")
        private Integer soldRooms;

        /**
         * 入住率
         */
        @NotNull(message = "the occ must not be null")
        @DigitsCustom(integer = 7, message = "the occ is wrong format")
        private BigDecimal occ;

    }