package com.sundot.airport.exam.dto;

import java.io.Serializable;

/**
 * <b>功能名：</b>DashboardQueryDTO<br>
 * <b>说明：</b> 大屏查询参数DTO <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author 2025-01-19
 */
public class DashboardQueryDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 部门ID列表,逗号分隔
     */
    private String deptIds;

    /**
     * 角色列表,逗号分隔
     */
    private String roles;

    /**
     * 用户ID列表,逗号分隔
     */
    private String userIds;

    /**
     * 开始日期 YYYY-MM-DD
     */
    private String startDate;

    /**
     * 结束日期 YYYY-MM-DD
     */
    private String endDate;

    /**
     * 时间范围: today/week/month/custom
     */
    private String timeRange;

    /**
     * 天数 (用于趋势图) 7/30/90
     */
    private Integer days;

    /**
     * 返回前N名 (用于排行榜)
     */
    private Integer topN;

    /**
     * 排序字段: completionRate/avgScore/totalTasks
     */
    private String sortBy;

    /**
     * 分组方式: expireDays/dept/role
     */
    private String groupBy;

    /**
     * 限制返回条数
     */
    private Integer limit;

    /**
     * 关键词 (用于用户搜索)
     */
    private String keyword;

    public String getDeptIds() {
        return deptIds;
    }

    public void setDeptIds(String deptIds) {
        this.deptIds = deptIds;
    }

    public String getRoles() {
        return roles;
    }

    public void setRoles(String roles) {
        this.roles = roles;
    }

    public String getUserIds() {
        return userIds;
    }

    public void setUserIds(String userIds) {
        this.userIds = userIds;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public String getTimeRange() {
        return timeRange;
    }

    public void setTimeRange(String timeRange) {
        this.timeRange = timeRange;
    }

    public Integer getDays() {
        return days;
    }

    public void setDays(Integer days) {
        this.days = days;
    }

    public Integer getTopN() {
        return topN;
    }

    public void setTopN(Integer topN) {
        this.topN = topN;
    }

    public String getSortBy() {
        return sortBy;
    }

    public void setSortBy(String sortBy) {
        this.sortBy = sortBy;
    }

    public String getGroupBy() {
        return groupBy;
    }

    public void setGroupBy(String groupBy) {
        this.groupBy = groupBy;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    @Override
    public String toString() {
        return "DashboardQueryDTO{" +
                "deptIds='" + deptIds + '\'' +
                ", roles='" + roles + '\'' +
                ", userIds='" + userIds + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", timeRange='" + timeRange + '\'' +
                ", days=" + days +
                ", topN=" + topN +
                ", sortBy='" + sortBy + '\'' +
                ", groupBy='" + groupBy + '\'' +
                ", limit=" + limit +
                ", keyword='" + keyword + '\'' +
                '}';
    }
}
