package com.cf.imes.module.system.service.machine;

import com.cf.imes.framework.common.pojo.PageParam;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.system.controller.admin.machine.vo.*;
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;

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

/**
 * @author there
 *
 */
public interface MachineTemplateService {


    Boolean auth(MachineAuthVO vo);

    PageResult<MachineTemplateDO> page(MachinePageReqVO pageParam);

    Long createDrillTemplate(DrillTemplateSaveReqVO reqVO);

    Boolean updateDrillTemplate(DrillTemplateSaveReqVO reqVO);

    DrillTemplateRespVO getDirllTemplateById(Long id);

    Boolean deleteDrillTemplate(Long id);

    Boolean batchDeleteDrillTemplate(List<Long> ids);

    Long createCuttingTemplate(CuttingTemplateSaveReqVO reqVO);

    Boolean updateCuttingTemplate(CuttingTemplateSaveReqVO reqVO);

    CuttingTemplateRespVO getCuttingTemplateById(String id);

    Boolean deleteCuttingTemplate(Long id);

    Boolean batchDeleteCuttingTemplate(List<Long> ids);

    CuttingTemplateRespVO getDefaultCutting(Integer machineType);

    DrillTemplateRespVO getDefaultDrill();

    Map<Integer, List<MachineTemplateDO>> getMachineTemplateTree();

    PageResult<AuthTemplateResp> authTemplatePage(AuthTemplatePage page);

    Boolean auth(MachineOrgAuthReq vo);

    PageResult<OrganTemplateResp> organTemplatePage(OrganTemplatePage page);

    OrganTemplateResp organTemplateByOrganId(Long organId);

    Boolean setDefaultTemplate(Long id);
}
