package com.bonus.material.approval.service;

import com.bonus.material.approval.domain.ApprovalInstance;

import java.util.List;

/**
 * 审批实例服务接口
 * 
 * @author bonus
 * @date 2024-11-18
 */
public interface IApprovalInstanceService {

    /**
     * 查询审批实例列表
     * 
     * @param instance 查询条件
     * @return 实例列表
     */
    List<ApprovalInstance> selectInstanceList(ApprovalInstance instance);

    /**
     * 根据ID查询审批实例（包含审批记录）
     * 
     * @param id 实例ID
     * @return 实例信息
     */
    ApprovalInstance selectInstanceById(Long id);

    /**
     * 根据业务类型和业务ID查询审批实例
     * 
     * @param businessType 业务类型
     * @param businessId 业务ID
     * @return 实例信息
     */
    ApprovalInstance selectInstanceByBusiness(String businessType, String businessId);

    /**
     * 查询我的待办审批列表
     * 
     * @return 待办列表
     */
    List<ApprovalInstance> selectMyTodoList();

    /**
     * 查询我的已办审批列表
     * 
     * @return 已办列表
     */
    List<ApprovalInstance> selectMyDoneList();

    /**
     * 新增审批实例
     * 
     * @param instance 实例信息
     * @return 结果
     */
    int insertInstance(ApprovalInstance instance);

    /**
     * 修改审批实例
     * 
     * @param instance 实例信息
     * @return 结果
     */
    int updateInstance(ApprovalInstance instance);

    /**
     * 删除审批实例
     * 
     * @param id 实例ID
     * @return 结果
     */
    int deleteInstanceById(Long id);
}

