package jnpf.model.attendance.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.Date;
import java.util.List;

/**
 * 考勤本配置查询DTO
 *
 * @author Generated
 * @create 2026-04-16
 */
@Data
@Schema(description = "考勤本配置查询DTO")
public class AttendanceBookConfigQueryDto {

    /**
     * 考勤本名称（模糊查询）
     */
    @Schema(description = "考勤本名称（模糊查询）")
    private String bookName;

    /**
     * 启用状态（1:启用 0:禁用）
     */
    @Schema(description = "启用状态（1:启用 0:禁用）")
    private Integer enabledMark;

    /**
     * 创建人用户ID集合
     */
    @Schema(description = "创建人用户ID集合")
    private List<String> creatorUserIdList;

    /**
     * 创建开始时间
     */
    @Schema(description = "创建开始时间")
    private Date creatorStartTime;

    /**
     * 创建结束时间
     */
    @Schema(description = "创建结束时间")
    private Date creatorEndTime;

    /**
     * 需求9：是否按负责人过滤（true:只显示当前用户为负责人的考勤本）
     */
    @Schema(description = "是否按负责人过滤（true:只显示当前用户为负责人的考勤本）")
    private Boolean isManagerFilter;

    /**
     * 当前页码
     */
    @Min(value = 1, message = "页码最小为1")
    @Schema(description = "当前页码", defaultValue = "1")
    private Integer currentPage = 1;

    /**
     * 每页条数
     */
    @Min(value = 1, message = "每页条数最小为1")
    @Max(value = 100, message = "每页条数最大为100")
    @Schema(description = "每页条数", defaultValue = "20")
    private Integer pageSize = 20;
}
