package com.qqchen.deploy.backend.workflow.service;

import com.qqchen.deploy.backend.workflow.dto.request.ApprovalTaskRequest;
import com.qqchen.deploy.backend.workflow.dto.response.ApprovalTaskDTO;

import java.util.List;

/**
 * 审批任务服务接口
 *
 * @author qqchen
 * @date 2025-10-23
 */
public interface IApprovalTaskService {

    /**
     * 查询当前用户的待办审批任务
     *
     * @param username 用户名
     * @return 待办任务列表
     */
    List<ApprovalTaskDTO> getMyTasks(String username);

    /**
     * 查询流程实例的所有审批任务
     *
     * @param processInstanceId 流程实例ID
     * @return 任务列表
     */
    List<ApprovalTaskDTO> getTasksByProcessInstance(String processInstanceId);

    /**
     * 根据任务ID查询审批任务详情
     *
     * @param taskId 任务ID
     * @return 任务详情
     */
    ApprovalTaskDTO getTaskById(String taskId);

    /**
     * 处理审批任务（通过/拒绝）
     *
     * @param request 审批请求
     */
    void completeTask(ApprovalTaskRequest request);
}

