# CaseListBO.java

    package cloud.wconnect.finance.pojo.bo.chargeback;

    import cloud.wconnect.commonlib.annotation.validator.DigitsCustom;
    import cloud.wconnect.commonlib.annotation.validator.DigitsInteger;
    import cloud.wconnect.commonlib.pojo.dto.group.Addition;
    import cloud.wconnect.commonlib.pojo.dto.group.Edition;
    import lombok.Data;
    import org.hibernate.validator.constraints.Length;

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

    /**
     * @author yyt
     * 2023/8/28
     */
    @Data
    public class CaseListBO {

        /**
         * Case 单号
         */
        @NotBlank(message = "the caseNumber must not be blank")
        @Length(max = 30, message = "the caseNumber max length 30")
        private String caseNumber;

        /**
         * 银行平台
         */
        @NotNull(message = "the vendor must not be null")
        private Integer vendor;

        /**
         * 信用卡类型
         */
        @NotNull(message = "the cardType must not be null")
        @Length(max = 20, message = "the cardType max length 20")
        private String cardType;

        /**
         * 信用卡号
         */
        @NotBlank(message = "the cardNumber must not be blank")
        @Length(max = 30, message = "the cardNumber max length 30")
        private String cardNumber;
        public String getCardNumber() {
            return this.cardNumber.trim();
        }

        /**
         * 开始日期，格式（2023/07/01）
         */
        @NotBlank(message = "the issueDate must not be blank")
        @Pattern(regexp = "^\\d{4}/\\d{2}/\\d{2}$", message = "The issueDate format is incorrect, right format is [yyyy/MM/dd]")
        private String issueDate;

        /**
         * 到期日期，格式（2023/07/01）
         */
        @Pattern(regexp = "^\\d{4}/\\d{2}/\\d{2}$", message = "The dueDate format is incorrect, right format is [yyyy/MM/dd]")
        private String dueDate;

        /**
         * 交易日期，格式（2023/07/01）
         */
        @NotBlank(message = "the trxDate must not be blank")
        @Pattern(regexp = "^\\d{4}/\\d{2}/\\d{2}$", message = "The trxDate format is incorrect, right format is [yyyy/MM/dd]")
        private String trxDate;

        /**
         * 交易金额
         */
        @NotNull(message = "the trxAmount must not be null")
        @DigitsInteger(integer = 8, message = "the trxAmount format is incorrect", groups = Addition.class)
        @DigitsCustom(integer = 8, message = "the trxAmount format is incorrect", groups = Edition.class)
        private BigDecimal trxAmount;

        /**
         * 纠纷金额
         */
        @NotNull(message = "the disputeAmount must not be null")
        @DigitsInteger(integer = 8, message = "the disputeAmount format is incorrect", groups = Addition.class)
        @DigitsCustom(integer = 8, message = "the disputeAmount format is incorrect", groups = Edition.class)
        private BigDecimal disputeAmount;

        /**
         * 原因
         */
        @NotNull(message = "the reason must not be null")
        @Length(max = 500, message = "the reason max length 500")
        private String reason;

        /**
         * Chargeback Type
         */
        @NotNull(message = "the chargebackType must not be null")
        @Length(max = 100, message = "the chargebackType max length 100")
        private String chargebackType;

        /**
         * Card Present
         */
        @NotNull(message = "the cardPresent must not be null")
        @Length(max = 200, message = "the cardPresent max length 200")
        private String cardPresent;

        /**
         * Auth Code
         */
        @NotNull(message = "the authCode must not be null")
        @Length(max = 100, message = "the authCode max length 100")
        private String authCode;

        /**
         * 附件
         */
        @NotNull(message = "the attachments must not be null")
        @Length(max = 1500, message = "the attachments max length 1500")
        private String attachments;

    }