# RateShopEmailTargetDTO.java

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

    import lombok.*;
    import lombok.experimental.Accessors;
    import org.hibernate.validator.constraints.Length;
    import org.hibernate.validator.constraints.Range;

    import jakarta.validation.constraints.NotNull;
    import java.io.Serializable;

    /**
     * 邮件目标对象DTO
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    public class RateShopEmailTargetDTO implements Serializable {

        /**
         * 主键id
         */
        private Integer id;
        /**
         * 邮件配置id
         */
        private Integer configId;

        /**
         * 1:to 2:cc
         */
        private Integer targetType;

        /**
         * 用户来源1：user 2: manual 3:usergroup
         */
        @NotNull(message = "The source cannot be null")
        @Range(min = 1, max = 3, message = "The source must between in [1:user 2:manual 3:usergroup]")
        private Integer source;

        /**
         * 身份id。用户来源是manual时，此值为0
         */
        @NotNull(message = "The identityId cannot be null")
        private Integer identityId;

        /**
         * 用户姓名
         */
        @Length(max = 60, message = "The identityName is limited 60 characters")
        private String identityName;

        /**
         * 邮箱地址
         */
        @Length(max = 60, message = "The email is limited 60 characters")
        private String email;

    }