package com.common.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.common.entity.DmNormalizeRule;
import java.util.List;
import java.util.Map;

@Mapper
public interface DmNormalizeRuleMapper {

    /**
     * 根据ID查询数据标准化规则
     * @param id 主键ID
     * @return 数据标准化规则对象
     */
    DmNormalizeRule selectById(@Param("id") Long id);

    /**
     * 根据Device ID查询数据标准化规则
     * @param id  主键device ID
     * @return 数据标准化规则对象
     */
    List<Map<String, Object>> selectByDeviceId(@Param("id") Long id);

    /**
     * 根据ID更新数据标准化规则
     * @param rule 数据标准化规则对象
     * @return 更新影响的行数
     */
    int updateById(DmNormalizeRule rule);

    /**
     * 根据ID和租户ID查询（带租户隔离）
     * @param id 主键ID
     * @param tenantId 租户ID
     * @return 数据标准化规则对象
     */
    DmNormalizeRule selectByIdAndTenant(@Param("id") Long id, @Param("tenantId") String tenantId);

    /**
     * 根据ID和租户ID更新（带租户隔离）
     * @param rule 数据标准化规则对象
     * @return 更新影响的行数
     */
    int updateByIdAndTenant(DmNormalizeRule rule);
}