# UpdateMarketSegmentationDTO.java

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

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

    import java.math.BigDecimal;

    /**
     * DTO: Update Market Segmentation
     *
     * @author: yyt
     * 2025-08-15
     */
    @Data
    public class UpdateMarketSegmentationDTO {

        /**
         * room id
         */
        @NotNull(message = "the roomId must not be null")
        private Integer roomId;

        /**
         * 预测房间数（限制：整数10位）
         */
        @Digits(integer = 10, fraction = 0,  message = "the budgetRooms is wrong format")
        private Long budgetRooms;

        /**
         * 实际房间数（限制：整数5位）
         */
        @Digits(integer = 5, fraction = 0, message = "the actualRooms is wrong format")
        private Integer actualRooms;

        /**
         * 预测 adr（限制：整数10位）
         */
        @DigitsCustom(integer = 10, message = "the budgetAdr is wrong format")
        private BigDecimal budgetAdr;

        /**
         * 实际 adr（限制：整数5位）
         */
        @DigitsCustom(integer = 5, message = "the actualAdr is wrong format")
        private BigDecimal actualAdr;

        /**
         * 预测 revenue（限制：整数15位，小数根据币种设定的小数位限制）【当只开启 room 时，需要手动输入 revenue】
         */
        @DigitsCustom(integer = 15, message = "the budgetRevenue is wrong format")
        private BigDecimal budgetRevenue;

    }