package cn.edu.whu.boot.xml.service;

import cn.edu.whu.boot.user.entities.User;
import cn.edu.whu.boot.xml.domain.Task;
import cn.edu.whu.boot.xml.domain.XmlEnity;

import java.util.List;

public interface ITaskService {

    /**
     * 更新 Task 对象
     */
    void updateTask(Task task);

    /**
     * 基于事务插入
     */
    void insertTaskAndXmlEnity(Task task, XmlEnity xmlEnity);

    /**
     * 基于事务更新
     */
    void updateTaskAndXmlEnity(Task task, XmlEnity xmlEnity);

    /**
     * 基于事务删除
     */
    void deleteTaskAndXmlEnity(Task task);

    /**
     * 基于 taskId 获取 xmlId
     */
    Integer getXmlId(Integer id);

    /**
     * 基于 taskId 获取 Task 对象
     */
    Task getTaskById(Integer id);

    /**
     * 获取已经创建创建库的所有 Task 对象
     */
    List<Task> getTaskHasCreateTable();

    /**
     * 获取所有 Task 对象
     */
    List<Task> getAllTask();

    /**
     * 判断是否已经有 databaseName 的模式名
     */
    boolean hasDatabaseName(String databaseName);

    /**
     * 获取任务的工作人员列表
     */
    List<User> getWorkersByTask(int taskId);

    /**
     * 设置巡查人员是否可以查看别人上传的数据
     */
    void setReviewerMode(int taskId, int isReviewerRestricted);
}
