package com.qmth.distributed.print.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.dto.obe.MatrixRequirementDto;
import com.qmth.distributed.print.business.entity.ObeCultureProgramRequirement;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 培养方案毕业要求 服务类
 * </p>
 *
 * @author xf
 * @since 2024-06-05
 */
public interface ObeCultureProgramRequirementService extends IService<ObeCultureProgramRequirement> {

    List<ObeCultureProgramRequirement> listRequirement(Long cultureProgramId);

    boolean saveRequirement(ObeCultureProgramRequirement obeCultureProgramRequirement);

    boolean addRequirementNode(ObeCultureProgramRequirement obeCultureProgramRequirement);

    int getMaxSortNum(Long cultureProgramId, Long parentId);

    boolean removeRequirement(Long id);

    void initRequirement(Long cultureProgramId);

    List<ObeCultureProgramRequirement> listByCultureProgramIdAndParentId(Long cultureProgramId, Long parentId);

    boolean saveRequirementExpect(ObeCultureProgramRequirement obeCultureProgramRequirement);

    void removeByCultureProgramId(Long id);

    Map<Long, Long> copyByCultureProgramId(Long id, Long obeCultureProgramNewId);

    List<ObeCultureProgramRequirement> listByCultureProgramId(Long cultureProgramId);

    List<MatrixRequirementDto> listSubRequirement(Long cultureProgramId, Long courseId);
}
