# SaleForecastInfoDTO.java

    package cloud.wconnect.workperformance.pojo.dto.sva.saleforecast;

    import cloud.wconnect.commonlib.annotation.validator.DigitsCustom;
    import jakarta.validation.constraints.DecimalMin;
    import jakarta.validation.constraints.Digits;
    import jakarta.validation.constraints.NotNull;
    import lombok.Data;
    import org.hibernate.validator.constraints.Range;

    import java.math.BigDecimal;

    /**
     * DTO类: Sale Forecast Info
     *
     * @author zc
     * @date 2023/3/27
     */
    @Data
    public class SaleForecastInfoDTO {

        /**
         * 日期
         */
        @NotNull(message="The theDate cannot be null.")
        private Long theDate;

        /**
         * Estimated F&B Revenue
         */
        @DigitsCustom(integer = 8, message = "The estiFbRev is wrong format")
        @DecimalMin(value = "0", message = "The estiFbRev must >= 0")
        private BigDecimal estiFbRev;

        /**
         * Estimated Room Sales
         */
        @Range(min = 0, max = 999, message = "The estiRoomSales must be 0-999")
        private Integer estiRoomSales;

        /**
         * Estimated ADR
         */
        @DigitsCustom(integer = 6, message = "The estiAdr is wrong format")
        @DecimalMin(value = "0", message = "The estiAdr must >= 0")
        private BigDecimal estiAdr;

        /**
         * Rooms Avail Sale
         */
        @Range(min = 0, max = 999, message = "The roomsAvailSale must be 0-999")
        private Integer roomsAvailSale;

        /**
         * Occ. %
         */
        @DigitsCustom(integer = 7, message = "The occPercent is wrong format")
        @DecimalMin(value = "0", message = "The occPercent must >= 0")
        private BigDecimal occPercent;

        /**
         * Arrivals
         */
        @Range(min = 0, max = 999, message = "The arrivals must be 0-999")
        private Integer arrivals;

        /**
         * Dirty
         */
        @Range(min = 0, max = 999, message = "The dirty must be 0-999")
        private Integer dirty;

        /**
         * Departures
         */
        @Range(min = 0, max = 999, message = "The departures must be 0-999")
        private Integer departures;

        /**
         * 餐厅用餐人数 / 餐厅客位数
         */
        @Range(min = 0, max = 999, message = "The departures must be 0-999")
        private Integer restaurantCovers;

        /**
         * 宴会用餐人数 / 宴会客位数
         */
        @Range(min = 0, max = 999, message = "The departures must be 0-999")
        private Integer banquetCovers;

        /**
         * 区域用餐人数 / 区域客位数
         */
        @Range(min = 0, max = 999, message = "The departures must be 0-999")
        private Integer aoiCovers;

        /**
         * 宴会F&B人数 / 宴会F&B客位数
         */
        @Range(min = 0, max = 999, message = "The departures must be 0-999")
        private Integer banquetFbCovers;

        /**
         * 宴会setup人数 / 宴会setup客位数
         */
        @Range(min = 0, max = 999, message = "The departures must be 0-999")
        private Integer banquetSetupCovers;

    }