package com.bonus.sgzb.base.mapper;

import com.bonus.sgzb.base.api.domain.MaMachine;
import com.bonus.sgzb.base.api.domain.MaType;
import com.bonus.sgzb.base.domain.MaKeeperUser;
import com.bonus.sgzb.base.domain.MaPropSet;
import com.bonus.sgzb.base.domain.MaTypeKeeper;
import com.bonus.sgzb.base.domain.MaTypeRepair;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工机具类型管理 数据层
 *
 * @author ruoyi
 */
@Mapper
public interface MaTypeMapper {

    List<MaType> selectMaTypeList(String typeName);

    /**
     * 查询机具类型管理ma_type
     *
     * @param typeId 机具类型管理ma_type主键
     * @return 机具类型管理ma_type
     */
    public MaType selectMaTypeByTypeId(Long typeId);


    /**
     * 新增机具类型管理ma_type
     *
     * @param maType 机具类型管理ma_type
     * @return 结果
     */
    public int insertType(MaType maType);

    /**
     * 修改机具类型管理ma_type
     *
     * @param maType 机具类型管理ma_type
     * @return 结果
     */
    public int updateType(MaType maType);

    /**
     * 删除机具类型管理ma_type
     *
     * @param typeId 机具类型管理ma_type主键
     * @return 结果
     */
    public int deleteTypeById(Long typeId);

    int insertKeeper(MaTypeKeeper typeKeeper);

    int insertRepair(MaTypeRepair typeRepair);

    int insertMaPropSet(MaPropSet propSet);

    int updateKeeperByTypeId(MaTypeKeeper typeKeeper);

    int updateRepairByTypeId(MaTypeRepair typeRepair);

    int updatePropSetByTypeId(MaPropSet propSet);

    MaType selectTypeByTypeId(long typeId);

    List<MaType> selectMaTypeTree(String parentId);

    List<MaType> getListByParentId(@Param("typeId") Long typeId, @Param("typeName") String typeName);

    List<MaType> selectMaTypeTreeByLevel(String id);

    List<MaType> selectMaTypeListByLevelNotFour(@Param("parentId") String parentId,@Param("keyword")String keyword);

    List<MaType> getMaTypeSelect(String parentId);

    int deleteTypeByTypeId(Long typeId);

    int deleteKeeperByTypeId(Long typeId);

    int deletePropSetByTypeId(Long typeId);

    int updateTypeNum(MaMachine maMachine);

    List<MaTypeKeeper> selectMaTypeByUserId(Long userId);


    List<Integer> selectParentId( @Param("typeId")Long typeId, @Param("level")Integer level);
}