# OtbRevenueDTO.java

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

    import cloud.wconnect.commonlib.annotation.validator.DigitsCustom;
    import lombok.Data;

    import jakarta.validation.constraints.Min;
    import java.math.BigDecimal;

    /**
     * DTO: Otb Revenue
     *
     * @author yyt
     * 2023/10/26
     */
    @Data
    public class OtbRevenueDTO {

        /**
         * OTB Revenue
         */
        @DigitsCustom(integer = 10, message = "the otbRevenue is wrong format")
        @Min(value = 0, message = "the otbRevenue min value is 0")
        private BigDecimal otbRevenue;

        /**
         * OTB Occ%
         */
        @DigitsCustom(integer = 6, message = "the otbOccPercent is wrong format")
        @Min(value = 0, message = "the otbOccPercent min value is 0")
        private BigDecimal otbOccPercent;

        /**
         * OTB ADR
         */
        @DigitsCustom(integer = 10, message = "the otbAdr is wrong format")
        @Min(value = 0, message = "the otbAdr min value is 0")
        private BigDecimal otbAdr;

        /**
         * RevPar
         */
        private BigDecimal otbRevPar;

        /**
         * OTB Revenue (Banquet Revenue)
         */
        @DigitsCustom(integer = 10, message = "the banquetRevenue is wrong format")
        @Min(value = 0, message = "the banquetRevenue min value is 0")
        private BigDecimal banquetRevenue;

        /**
         * Budget Achievement
         */
        private BigDecimal otbAchievement;

        /**
         * Pick-up from last report
         */
        private BigDecimal otbPickup;

        /**
         * F&B OTB Revenue
         */
        @DigitsCustom(integer = 10, message = "the fbOtbRevenue is wrong format")
        @Min(value = 0, message = "the fbOtbRevenue min value is 0")
        private BigDecimal fbOtbRevenue;

    }