package com.zksy.dispatch.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zksy.dispatch.domain.DisPlanApproval;
import com.zksy.dispatch.dto.DisPlanApprovalPageDTO;

public interface DisPlanApprovalService extends IService<DisPlanApproval> {

    Page<DisPlanApproval> findByPage(DisPlanApprovalPageDTO dto);

    /**
     * 提交审批：编辑中 -> 审批中
     */
    boolean submitForApproval(Long id);

    /**
     * 初审通过：审批中 -> 终审中
     */
    boolean approve(Long id, String opinion);

    /**
     * 驳回：审批中/终审中 -> 待修正
     */
    boolean reject(Long id, String opinion);

    /**
     * 终审通过并发布：终审中 -> 已发布
     */
    boolean publish(Long id, String opinion);

    /**
     * 根据预案ID创建审批记录并提交
     */
    boolean createFromPlan(Long planId);
}
