# FdProcedureCheckQuery.java

    package cloud.wconnect.workperformance.pojo.query.fdprocedurecheck;

    import cloud.wconnect.workperformance.pojo.group.General;
    import cloud.wconnect.workperformance.pojo.group.Other;
    import com.google.common.collect.Lists;
    import lombok.Data;
    import org.hibernate.validator.constraints.Range;

    import jakarta.validation.constraints.NotNull;
    import java.util.List;

    /**
     * Query: FD Procedure Check
     *
     * @author zc
     * @date 2023/10/06
     */
    @Data
    public class FdProcedureCheckQuery {

        /**
         * page
         */
        @NotNull(message = "The page cannot be null.", groups = General.class)
        private Integer page;

        /**
         * size
         */
        @NotNull(message = "The size cannot be null.", groups = General.class)
        private Integer size;

        /**
         * 开始时间（时间戳）
         */
        private Long fromDate;

        /**
         * 结束时间（时间戳）
         */
        private Long endDate;

        /**
         * User Id
         */
        private Integer userId;

        /**
         * 1：FD Name；2：FD(after review)；3：Not Sure；4：N/A
         */
        private List<Integer> types;

        public static final int TYPE_FD_NAME = 1;
        public static final int TYPE_FD_AFTER_REVIEW = 2;
        public static final int TYPE_NOT_SURE = 3;
        public static final int TYPE_N_A = 4;

        /**
         * 处理结果 0：Pending 1：Revise 2：Confirm
         */
        @Range(min = 0, max = 2, message = "The handledResult must in [0:Pending 1:Revise 2:Confirm]", groups = {General.class, Other.class})
        private Integer handledResult;

        /**
         * 获取支持的 type
         *
         * @return types
         * @author zc
         * @date 2023/10/6
         */
        public static List<Integer> listAllTypes() {
            return Lists.newArrayList(TYPE_FD_NAME, TYPE_FD_AFTER_REVIEW, TYPE_NOT_SURE, TYPE_N_A);
        }

    }