package com.ruoyi.blockchain.service;

import java.util.List;
import java.util.Map;

/**
 * Oracle数据源服务接口
 * 
 * 实现Oracle数据源集成和外部数据验证
 * 
 * @author ruoyi
 */
public interface OracleService {
    
    /**
     * 注册Oracle数据源
     * 
     * @param oracleConfig Oracle配置
     * @return 注册结果
     */
    boolean registerOracle(Map<String, Object> oracleConfig);
    
    /**
     * 获取Oracle数据
     * 
     * @param oracleName Oracle名称
     * @param dataKey 数据键
     * @return 数据值
     */
    Object getOracleData(String oracleName, String dataKey);
    
    /**
     * 验证Oracle数据
     * 
     * @param oracleName Oracle名称
     * @param dataKey 数据键
     * @param expectedValue 期望值
     * @return 验证结果
     */
    boolean validateOracleData(String oracleName, String dataKey, Object expectedValue);
    
    /**
     * 更新Oracle数据
     * 
     * @param oracleName Oracle名称
     * @param dataUpdates 数据更新
     * @return 更新结果
     */
    boolean updateOracleData(String oracleName, Map<String, Object> dataUpdates);
    
    /**
     * 获取Oracle状态
     * 
     * @param oracleName Oracle名称
     * @return Oracle状态
     */
    Map<String, Object> getOracleStatus(String oracleName);
    
    /**
     * 获取所有Oracle列表
     * 
     * @return Oracle列表
     */
    List<Map<String, Object>> getAllOracles();
    
    /**
     * 移除Oracle数据源
     * 
     * @param oracleName Oracle名称
     * @return 移除结果
     */
    boolean removeOracle(String oracleName);
}