package com.bonus.material.ma.mapper;

import java.util.List;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.ma.domain.TypeRepair;
import com.bonus.material.ma.domain.vo.MaTypeVo;
import org.apache.ibatis.annotations.Param;

/**
 * 维修班机具配置Mapper接口
 *
 * @author xsheng
 * @date 2024-09-27
 */
public interface TypeRepairMapper {
    /**
     * 查询维修班机具配置
     *
     * @param ID 维修班机具配置主键
     * @return 维修班机具配置
     */
    TypeRepair selectTypeRepairByID(Long ID);

    /**
     * 查询维修班机具配置列表
     *
     * @param typeRepair 维修班机具配置
     * @return 维修班机具配置集合
     */
    List<TypeRepair> selectTypeRepairList(TypeRepair typeRepair);

    /**
     * 查询配置列表并关联查询用户姓名
     */
    List<TypeRepair> selectTypeRepairListAndUserName(TypeRepair typeRepair);

    /**
     * 新增维修班机具配置
     *
     * @param typeRepairs 维修班机具配置
     * @return 结果
     */
    int insertTypeRepair(@Param("list") List<TypeRepair> typeRepairs);

    /**
     * 修改维修班机具配置
     *
     * @param typeRepair 维修班机具配置
     * @return 结果
     */
    int updateTypeRepair(TypeRepair typeRepair);

    /**
     * 删除维修班机具配置
     *
     * @param ID 维修班机具配置主键
     * @return 结果
     */
    int deleteTypeRepairByID(Long ID);

    /**
     * 批量删除维修班机具配置
     *
     * @param IDs 需要删除的数据主键集合
     * @return 结果
     */
    int deleteTypeRepairByIDs(Long[] IDs);

    /**
     * 根据用户id和类型id删除配置记录
     * @param typeRepairs
     * @return
     */
    int deleteTypeRepairByUserIdAndTypeId(@Param("list") List<TypeRepair> typeRepairs);

    /**
     * 查询维修班机具配置列表并关联查询用户姓名
     * @param typeRepair
     * @return
     */
    List<TypeRepair> getRepairList(TypeRepair typeRepair);

    /**
     *删除人员配置
     */
    int deleteTypeManageByUserIdAndTypeId(List<TypeRepair> typeRepairs);

    /**
     * 新增人员配置
     */
    int insertTypeManage(List<TypeRepair> typeRepairs);

    /**
     * 查询人员配置列表
     */
    List<MaTypeVo> getTypeManageList(MaTypeVo maTypeVo);
}
