package com.xzzn.ems.mapper;

import com.xzzn.ems.domain.EmsPointEnumMatch;

import java.util.List;

import org.apache.ibatis.annotations.Param;

/**
 * 点位枚举匹配Mapper接口
 * 
 * @author xzzn
 * @date 2025-12-08
 */
public interface EmsPointEnumMatchMapper 
{
    /**
     * 查询点位枚举匹配
     * 
     * @param id 点位枚举匹配主键
     * @return 点位枚举匹配
     */
    public EmsPointEnumMatch selectEmsPointEnumMatchById(Long id);

    /**
     * 查询点位枚举匹配列表
     * 
     * @param emsPointEnumMatch 点位枚举匹配
     * @return 点位枚举匹配集合
     */
    public List<EmsPointEnumMatch> selectEmsPointEnumMatchList(EmsPointEnumMatch emsPointEnumMatch);

    /**
     * 新增点位枚举匹配
     * 
     * @param emsPointEnumMatch 点位枚举匹配
     * @return 结果
     */
    public int insertEmsPointEnumMatch(EmsPointEnumMatch emsPointEnumMatch);

    /**
     * 修改点位枚举匹配
     * 
     * @param emsPointEnumMatch 点位枚举匹配
     * @return 结果
     */
    public int updateEmsPointEnumMatch(EmsPointEnumMatch emsPointEnumMatch);

    public void updateDataEnumCodeById(EmsPointEnumMatch pointEnumMatch);

    /**
     * 删除点位枚举匹配
     * 
     * @param id 点位枚举匹配主键
     * @return 结果
     */
    public int deleteEmsPointEnumMatchById(Long id);

    /**
     * 批量删除点位枚举匹配
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsPointEnumMatchByIds(Long[] ids);

    public List<EmsPointEnumMatch> selectList(@Param("siteId") String siteId,
                                              @Param("deviceCategory") String deviceCategory,
                                              @Param("matchField") String matchField);

    int countBySiteId(@Param("siteId") String siteId);

    int deleteBySiteId(@Param("siteId") String siteId);

    int copyTemplateToSite(@Param("templateSiteId") String templateSiteId,
                           @Param("targetSiteId") String targetSiteId,
                           @Param("operName") String operName);

    int deleteByScope(@Param("siteId") String siteId,
                      @Param("deviceCategory") String deviceCategory,
                      @Param("matchField") String matchField);
}
