# TaPortalManualDTO.java

    package cloud.wconnect.finance.pojo.dto.ta.manualrecords;

    import cloud.wconnect.commonlib.annotation.validator.DigitsCustom;
    import lombok.AllArgsConstructor;
    import lombok.Builder;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.hibernate.validator.constraints.Length;
    import org.hibernate.validator.constraints.Range;

    import jakarta.validation.constraints.DecimalMin;
    import jakarta.validation.constraints.NotBlank;
    import jakarta.validation.constraints.NotNull;
    import java.math.BigDecimal;

    /**
     * DTO: Portal
     *
     * @author zc
     * @date 2023-7-14
     */
    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    public class TaPortalManualDTO {

        /**
         * 入住日期
         */
        @NotNull(message = "The arrivalDate cannot be null")
        private Long arrivalDate;

        /**
         * 客人标识
         */
        @NotBlank(message = "The name cannot be blank")
        @Length(max = 200, message = "The name is limited 200 characters")
        private String name;

        /**
         * 房间数
         */
        @NotNull(message = "The rooms can not be null")
        @Range(min = 0, max = 999, message = "The rooms must between 0 and 999")
        private Integer rooms;

        /**
         * 信用卡号后四位
         */
        @NotBlank(message = "The cardNo cannot be blank")
        @Length(max = 4, message = "The lastFourDigits is limited 4 characters")
        private String lastFourDigits;

        /**
         * 合约单价
         */
        @NotNull(message = "The rate cannot be null")
        @DigitsCustom(integer = 7, message = "The rate is wrong format")
        @DecimalMin(value = "0", message = "The rate must be greater than 0")
        private BigDecimal rate;

        /**
         * 支付总额
         */
        @NotNull(message = "The totalCharged cannot be null")
        @DigitsCustom(integer = 10, message = "The totalCharged is wrong format")
        @DecimalMin(value = "0", message = "The totalCharged must be greater than 0")
        private BigDecimal totalCharged;

        /**
         * 入住天数
         */
        @NotNull(message = "The nights can not be null")
        @Range(min = 0, max = 999, message = "The nights must between 0 and 999.")
        private Integer nights;

        /**
         * 航空公司
         */
        @NotBlank(message = "The airline cannot be blank")
        @Length(max = 100, message = "The airline is limited 100 characters")
        private String airline;

        /**
         * 预计退房时间
         */
        @NotNull(message = "The departureDate cannot be null")
        private Long departureDate;

        /**
         * 客人数量
         */
        @NotBlank(message = "The customerNumber cannot be blank")
        private String customerNumber;

        /**
         * voucher
         */
        @NotBlank(message = "The voucher cannot be blank")
        private String voucher;
    }