package com.sundot.airport.exam.dto;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * <b>功能名：</b>DailyTaskAdminQueryDTO<br>
 * <b>说明：</b> 管理员查询每日任务参数DTO <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author 2025-01-18
 */
public class DailyTaskAdminQueryDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户姓名（模糊查询）
     */
    private String userName;

    /**
     * 部门ID
     */
    private Long deptId;

    /**
     * 部门名称（班组名称，模糊查询）
     */
    private String deptName;

    /**
     * 科室ID
     */
    private Long departmentId;

    /**
     * 科室名称（模糊查询）
     */
    private String departmentName;

    /**
     * 角色
     */
    private String role;

    /**
     * 任务状态（PENDING/IN_PROGRESS/COMPLETED/EXPIRED）
     */
    private String status;

    /**
     * 业务日期开始
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date businessDateStart;

    /**
     * 业务日期结束
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date businessDateEnd;

    /**
     * 创建时间开始
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTimeStart;

    /**
     * 创建时间结束
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTimeEnd;

    /**
     * 配置ID
     */
    private String configId;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getBusinessDateStart() {
        return businessDateStart;
    }

    public void setBusinessDateStart(Date businessDateStart) {
        this.businessDateStart = businessDateStart;
    }

    public Date getBusinessDateEnd() {
        return businessDateEnd;
    }

    public void setBusinessDateEnd(Date businessDateEnd) {
        this.businessDateEnd = businessDateEnd;
    }

    public Date getCreateTimeStart() {
        return createTimeStart;
    }

    public void setCreateTimeStart(Date createTimeStart) {
        this.createTimeStart = createTimeStart;
    }

    public Date getCreateTimeEnd() {
        return createTimeEnd;
    }

    public void setCreateTimeEnd(Date createTimeEnd) {
        this.createTimeEnd = createTimeEnd;
    }

    public String getConfigId() {
        return configId;
    }

    public void setConfigId(String configId) {
        this.configId = configId;
    }

    @Override
    public String toString() {
        return "DailyTaskAdminQueryDTO{" +
                "userId=" + userId +
                ", userName='" + userName + '\'' +
                ", deptId=" + deptId +
                ", deptName='" + deptName + '\'' +
                ", departmentId=" + departmentId +
                ", departmentName='" + departmentName + '\'' +
                ", role='" + role + '\'' +
                ", status='" + status + '\'' +
                ", businessDateStart=" + businessDateStart +
                ", businessDateEnd=" + businessDateEnd +
                ", createTimeStart=" + createTimeStart +
                ", createTimeEnd=" + createTimeEnd +
                ", configId='" + configId + '\'' +
                '}';
    }
}
