package digital.laboratory.platform.entrustment.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import digital.laboratory.platform.entrustment.dto.ApprovedUpdateEntrustDTO;
import digital.laboratory.platform.entrustment.dto.EntrustAlterApplyApproveDTO;
import digital.laboratory.platform.entrustment.dto.EntrustAlterApplyDTO;
import digital.laboratory.platform.entrustment.entity.EntrustAlterApply;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.query.EntrustAlterApplyQuery;
import digital.laboratory.platform.entrustment.vo.EntrustAlterApplyVO;

import java.util.List;

/**
* @author ChenJiangBao
* @description 针对表【b_entrust_alter_apply(申请修改委托消息表)】的数据库操作Service
* @createDate 2024-10-31 17:35:01
*/
public interface EntrustAlterApplyService extends IService<EntrustAlterApply> {

    /**
     * 分页查询委托申请修改VO
     * @param query
     * @return
     */
    IPage<EntrustAlterApplyVO> voPage(EntrustAlterApplyQuery query);

    /**
     * 保存委托申请修改
     * @param dto
     * @return
     */
    EntrustAlterApplyVO save(EntrustAlterApplyDTO dto);

    /**
     * 审批委托申请修改
     * @param approveDTO
     * @return
     */
    Boolean approve(EntrustAlterApplyApproveDTO approveDTO);

    /**
     * 修改委托申请修改消息
     * @param dto
     * @return
     */
    Boolean update(EntrustAlterApplyDTO dto);

    /**
     * 删除委托申请修改消息
     * @param ids
     * @return
     */
    Boolean delete(List<String> ids);

    /**
     * 修改委托案件简要、鉴定要求, 并删除已生成的鉴定事项确认书和委托书
     * @param dto
     * @return
     */
    Boolean updateEntrust(ApprovedUpdateEntrustDTO dto);

    /**
     * 判断当前委托是否在申请中的状态
     * @param entrustId
     * @return
     */
    Boolean isApplying(String entrustId);

}
