# TaCreditCardManualDTO.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 jakarta.validation.constraints.DecimalMin;
    import jakarta.validation.constraints.NotBlank;
    import jakarta.validation.constraints.NotNull;
    import java.math.BigDecimal;

    /**
     * DTO: Credit Card
     *
     * @author zc
     * @date 2023-7-14
     */
    @Data
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    public class TaCreditCardManualDTO {

        /**
         * 房间号
         */
        @NotBlank(message = "The roomNo cannot be blank")
        @Length(max = 10, message = "The roomNo is limited 10 characters")
        private String roomNo;

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

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

        /**
         * 退房日期
         */
        @NotNull(message = "The departureDate cannot be null")
        private Long departureDate;

        /**
         * 信用卡类型
         */
        @NotBlank(message = "The cardType cannot be blank")
        @Length(max = 20, message = "The cardType is limited 20 characters")
        private String cardType;

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

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

        /**
         * F&B费用
         */
        @NotNull(message = "The fbRevenue cannot be null")
        @DigitsCustom(integer = 7, message = "The fbRevenue is wrong format")
        @DecimalMin(value = "0", message = "The fbRevenue must be greater than 0")
        private BigDecimal fbRevenue;

        /**
         * 税费用
         */
        @NotNull(message = "The nonRevenue cannot be null")
        @DigitsCustom(integer = 7, message = "The nonRevenue is wrong format")
        @DecimalMin(value = "0", message = "The nonRevenue must be greater than 0")
        private BigDecimal nonRevenue;

        /**
         * 总费用
         */
        @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;
    }