# WeeklyMonthlyRevenueBudgetOverallDTO.java

    package cloud.wconnect.rateshop.pojo.dto.weeklymonthlyrevenue.budget;

    import cloud.wconnect.commonlib.annotation.validator.DigitsCustom;
    import cloud.wconnect.commonlib.pojo.dto.group.Edition;
    import lombok.Data;
    import org.hibernate.validator.constraints.Range;

    import java.math.BigDecimal;

    /**
     * DTO: Weekly Monthly Revenue Overall
     *
     * @author zc
     * @date 2024/05/13
     */
    @Data
    public class WeeklyMonthlyRevenueBudgetOverallDTO {

        /**
         * PC OCC %
         */
        @DigitsCustom(integer = 3, message = "The pcOcc is wrong format")
        @Range(min = 0, max = 100, message = "The pcOcc must be between 0 and 100")
        private BigDecimal pcOcc;

        /**
         * SC OCC %
         */
        @DigitsCustom(integer = 3, message = "The scOcc is wrong format")
        @Range(min = 0, max = 100, message = "The scOcc must be between 0 and 100")
        private BigDecimal scOcc;

        /**
         * Rooms Sold
         */
        @Range(min = 0, max = 999999, message = "The roomsSold must be between 0 and 999999")
        private Long roomsSold;

        /**
         * ADR
         */
        @DigitsCustom(integer = 10, message = "The adr is wrong format")
        private BigDecimal adr;

        /**
         * RevPar
         */
        @DigitsCustom(integer = 10, message = "The revPar is wrong format")
        private BigDecimal revPar;

        /**
         * Room revenue
         */
        @DigitsCustom(integer = 10, message = "The roomRevenue is wrong format")
        private BigDecimal roomRevenue;

        /**
         * BFR
         */
        @DigitsCustom(integer = 10, message = "The bfr is wrong format", groups = {Edition.class})
        private BigDecimal bfr;

        /**
         * Physical Capacity Rooms
         */
        @Range(min = 0, max = 999999, message = "The physicalCapacity must be between 0 and 999999")
        private Long physicalCapacity;

        /**
         * Sellable Capacity Rooms
         */
        @Range(min = 0, max = 999999, message = "The sellableCapacity must be between 0 and 999999")
        private Long sellableCapacity;

        /**
         * OOO Rooms
         */
        @Range(min = -999999, max = 999999, message = "The ooo must be between -999999 and 999999", groups = {Edition.class})
        private Long ooo;

        /**
         * Complimentary Rooms
         */
        @Range(min = 0, max = 999999, message = "The complimentaryRooms must be between 0 and 999999", groups = {Edition.class})
        private Long complimentaryRooms;

        /**
         * Room Left To Sell
         */
        @Range(min = 0, max = 999999, message = "The roomLeftToSell must be between 0 and 999999")
        private Long roomLeftToSell;

        /**
         * No Show Rooms
         */
        @Range(min = 0, max = 999999, message = "The noShowRooms must be between 0 and 999999", groups = {Edition.class})
        private Long noShowRooms;

    }