# TransientAndGroupDTO.java

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

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

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

    /**
     * DTO: Transient And Group
     *
     * @author yyt
     * 2023/10/26
     */
    @Data
    public class TransientAndGroupDTO {

        /**
         * 日期
         */
        @NotNull(message = "the targetDate must not be null")
        private Long targetDate;

        /**
         * Occupancy
         */
        @DigitsCustom(integer = 6, message = "the occPercent is wrong format")
        @Min(value = 0, message = "the occPercent min value is 0")
        private BigDecimal occPercent;

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

        /**
         * Transient
         */
        @Max(value = 1000000, message = "the transientRoomNum is wrong format")
        @Min(value = 0, message = "the transientRoomNum min value is 0")
        private Integer transientRoomNum;

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

        /**
         * Group
         */
        @Max(value = 1000000, message = "the groupRoomNum is wrong format")
        @Min(value = 0, message = "the groupRoomNum min value is 0")
        private Integer groupRoomNum;

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

        /**
         * Current Hurdle Point
         */
        private BigDecimal hurdlePoint;

        /**
         * Rooms Available
         */
        @Max(value = 1000000, message = "the roomsAvailable is wrong format")
        private Integer roomsAvailable;

        /**
         * Transient Pick-up from last report
         */
        private Integer transientPickup;

        /**
         * Group Pick-up from last report
         */
        private Integer groupPickup;

        /**
         * Room blocked
         */
        private Integer roomBlocked;

        /**
         * Room pickup
         */
        private Integer roomPickup;

    }