# SaveRequestDTO.java

    package cloud.wconnect.it.pojo.dto.servicerequestcenter;

    import jakarta.validation.constraints.NotBlank;
    import jakarta.validation.constraints.NotNull;
    import lombok.Data;
    import org.hibernate.validator.constraints.Length;
    import org.hibernate.validator.constraints.Range;

    /**
     * DTO: Save Request
     *
     * @author: yyt
     * 2025-12-16
     */
    @Data
    public class SaveRequestDTO {

        /**
         * 1.account 2.it 3.product
         */
        @NotNull(message = "the type must not be null")
        @Range(min = 1, max = 3, message = "the type must in [1.account, 2.it, 3.product]")
        private Integer type;

        /**
         * title
         */
        @NotBlank(message = "the title must not be empty")
        @Length(max = 255, message = "the title length must less than 255")
        private String title;

        /**
         * description
         */
        @NotBlank(message = "the description must not be empty")
        private String description;

        /**
         * 选择模块
         */
        private String modules;

        /**
         * 选择功能
         */
        private String functionIds;

        /**
         * 选择资产，[{"id":"资产 id","name":"资产名称"}]
         */
        private String properties;

        /**
         * 1.low 2.medium 3.high 4.urgent
         */
        @NotNull(message = "the priority must not be null")
        @Range(min = 1, max = 4, message = "the priority must in [1.low, 2.medium, 3.high, 4.urgent]")
        private Integer priority;

        /**
         * 部门
         */
        @NotBlank(message = "the department must not be empty")
        @Length(max = 255, message = "the department length must less than 255")
        private String department;

        /**
         * 邮箱
         */
        @NotBlank(message = "the contactEmail must not be empty")
        @Length(max = 255, message = "the contactEmail length must less than 255")
        private String contactEmail;

        /**
         * 附件
         */
        private String attachments;

    }