package cn.iocoder.yudao.module.mes.service.devicetype;

import cn.iocoder.yudao.module.mes.controller.admin.devicetype.vo.DeviceTypeTreeRespVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;

import java.util.*;
import cn.iocoder.yudao.module.mes.controller.admin.devicetype.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 设备类型 Service 接口
 *
 * @author 内蒙必硕
 */
public interface DeviceTypeService {

    Long createDeviceType(DeviceTypeSaveReqVO createReqVO);

    void updateDeviceType(DeviceTypeSaveReqVO updateReqVO);

    void deleteDeviceType(Long id);

    void deleteDeviceTypeBatch(List<Long> ids);

    DeviceTypeDO getDeviceType(Long id);

    PageResult<DeviceTypeDO> getDeviceTypePage(DeviceTypePageReqVO pageReqVO);

    List<DeviceTypeDO> getDeviceTypeList(DeviceTypeListReqVO listReqVO);

    List<DeviceTypeTreeRespVO> getDeviceTypeTree(DeviceTypeListReqVO pageReqVO);

    List<DeviceTypeDO> getChildrenDeviceTypes(Long parentId);

    List<DeviceTypeDO> getAncestorDeviceTypes(Long id);
}