package com.fuyuanshen.equipment.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuyuanshen.equipment.domain.DeviceType;
import com.fuyuanshen.equipment.domain.query.DeviceTypeQueryCriteria;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description:
 * @Author: WY
 * @Date: 2025/5/14
 **/
@Mapper
public interface DeviceTypeMapper extends BaseMapper<DeviceType> {

    /**
     * 分页查询设备类型
     *
     * @param criteria
     * @param page
     * @return
     */
    IPage<DeviceType> findAll(@Param("criteria") DeviceTypeQueryCriteria criteria, Page<DeviceType> page);

    /**
     * 查询所有设备类型
     *
     * @param criteria
     * @return
     */
    List<DeviceType> findAll(@Param("criteria") DeviceTypeQueryCriteria criteria);

    /**
     * 获取已经分配的设备类型
     *
     * @param customerId
     * @return
     */
    DeviceType getAssignType(@Param("deviceType") Long deviceType, @Param("customerId") Long customerId);

    /**
     * 根据名称查询设备类型
     *
     * @param criteria
     * @return
     */
    DeviceType queryByName(@Param("criteria") DeviceTypeQueryCriteria criteria);

    /**
     * 根据名称列表查询设备类型
     *
     * @param typeNames
     * @return
     */
    List<DeviceType> selectByNames(@Param("typeNames") List<String> typeNames);


}
