package com.ruoyi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.domain.Task;
import com.ruoyi.web.request.*;
import com.ruoyi.web.response.TaskFindResponse;
import com.ruoyi.web.response.TaskGetInfoResponse;

import java.util.List;

public interface TaskService extends IService<Task> {

    /**
     * 查询任务表
     * @param request
     * @return
     */
    List<Task> findList(TaskListRequest request);

    void createTask(TaskCreateRequest request);

    /**
     * 查询进行中的任务
     * @param request
     * @return
     */
    List<TaskFindResponse> findPending(TaskFindPendingRequest request);

    /**
     * 查询完成的任务
     * @param request
     * @return
     */
    List<Task> findFinish(TaskFindFinishRequest request);

    void editTask(TaskEditRequest request);

    void deleteTask(TaskDeleteRequest request);

    void startTask(TaskStartRequest request);

    /**
     * 用户发起的任务
     * @param request
     * @return
     */
    List<TaskFindResponse> findCreate(TaskFindRequest request,Long userId);

    TaskGetInfoResponse getInfo(TaskGetInfoRequest request);

    /**
     * 查询已办任务
     * @param request
     * @return
     */
    List<Task> findUserFinish(TaskFindFinishRequest request,Long userId);

    void temporaryStorageTask(TaskCreateRequest request);

    TaskGetInfoResponse getByUserId(Long userId);
}