package com.fs.hisStore.mapper;


import com.fs.hisStore.domain.ExemptSecondMedicalDevice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description: 免于经营备案的第二类医疗器械产品Mapper
 * @author: Guos
 * @time: 2025/11/29 上午9:36
 */
@Mapper
public interface ExemptSecondMedicalDeviceMapper {

    /**
     * 新增产品
     * @param device 产品实体
     * @return 影响行数
     */
    int insert(ExemptSecondMedicalDevice device);

    /**
     * 批量新增产品
     * @param devices 产品列表
     * @return 影响行数
     */
    int batchInsert(@Param("devices") List<ExemptSecondMedicalDevice> devices);

    /**
     * 根据ID查询产品
     * @param id 主键ID
     * @return 产品实体
     */
    ExemptSecondMedicalDevice selectById(Long id);

    /**
     * 根据产品名称查询产品（模糊）
     * @param productName 产品名称
     * @return 产品列表
     */
    List<ExemptSecondMedicalDevice> selectByProductName(String productName);

    /**
     * 根据目录名称查询产品（模糊，支持按分类编号检索，如“07%”“14%”）
     * @param directoryName 目录名称
     * @return 产品列表
     */
    List<ExemptSecondMedicalDevice> selectByDirectoryName(String directoryName);

    /**
     * 查询所有产品（按序号1-13升序）
     * @return 产品列表
     */
    List<ExemptSecondMedicalDevice> selectAll();

    /**
     * 根据ID更新产品
     * @param device 产品实体
     * @return 影响行数
     */
    int updateById(ExemptSecondMedicalDevice device);

    /**
     * 根据ID删除产品
     * @param id 主键ID
     * @return 影响行数
     */
    int deleteById(Long id);
}