package com.ruoyi.security.mapper;

import java.util.List;
import com.ruoyi.security.domain.DataConsistencyCheck;

/**
 * 数据一致性检查记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-12-22
 */
public interface DataConsistencyCheckMapper 
{
    /**
     * 查询数据一致性检查记录
     * 
     * @param checkId 数据一致性检查记录主键
     * @return 数据一致性检查记录
     */
    public DataConsistencyCheck selectDataConsistencyCheckByCheckId(Long checkId);

    /**
     * 查询数据一致性检查记录列表
     * 
     * @param dataConsistencyCheck 数据一致性检查记录
     * @return 数据一致性检查记录集合
     */
    public List<DataConsistencyCheck> selectDataConsistencyCheckList(DataConsistencyCheck dataConsistencyCheck);

    /**
     * 新增数据一致性检查记录
     * 
     * @param dataConsistencyCheck 数据一致性检查记录
     * @return 结果
     */
    public int insertDataConsistencyCheck(DataConsistencyCheck dataConsistencyCheck);

    /**
     * 修改数据一致性检查记录
     * 
     * @param dataConsistencyCheck 数据一致性检查记录
     * @return 结果
     */
    public int updateDataConsistencyCheck(DataConsistencyCheck dataConsistencyCheck);

    /**
     * 删除数据一致性检查记录
     * 
     * @param checkId 数据一致性检查记录主键
     * @return 结果
     */
    public int deleteDataConsistencyCheckByCheckId(Long checkId);

    /**
     * 批量删除数据一致性检查记录
     * 
     * @param checkIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDataConsistencyCheckByCheckIds(Long[] checkIds);

    /**
     * 根据检查类型查询检查记录
     * 
     * @param checkType 检查类型
     * @return 数据一致性检查记录集合
     */
    public List<DataConsistencyCheck> selectDataConsistencyCheckByType(String checkType);

    /**
     * 根据实体ID查询检查记录
     * 
     * @param sourceEntityId 源实体ID
     * @param targetEntityId 目标实体ID
     * @return 数据一致性检查记录集合
     */
    public List<DataConsistencyCheck> selectDataConsistencyCheckByEntities(Long sourceEntityId, Long targetEntityId);

    /**
     * 查询失败的检查记录
     * 
     * @return 数据一致性检查记录集合
     */
    public List<DataConsistencyCheck> selectFailedChecks();
}