package com.ruoyi.monitor.service;

import java.util.Map;

/**
 * 数据管理Service接口
 * 
 * @author ruoyi
 * @date 2025-12-19
 */
public interface IDataManagerService 
{
    /**
     * 数据备份
     * 
     * @param dataType 数据类型
     * @param schedule 备份计划
     * @return 备份结果
     */
    public Map<String, Object> backupData(String dataType, Map<String, Object> schedule);

    /**
     * 数据恢复
     * 
     * @param backupId 备份ID
     * @param targetTime 目标时间
     * @return 恢复结果
     */
    public Map<String, Object> restoreData(String backupId, String targetTime);

    /**
     * 数据完整性验证
     * 
     * @param dataId 数据ID
     * @return 验证结果
     */
    public Map<String, Object> validateDataIntegrity(String dataId);

    /**
     * 敏感数据脱敏
     * 
     * @param data 原始数据
     * @param maskLevel 脱敏级别
     * @return 脱敏后的数据
     */
    public Map<String, Object> maskSensitiveData(Map<String, Object> data, String maskLevel);

    /**
     * 数据归档
     * 
     * @param dataId 数据ID
     * @param retentionPolicy 保留策略
     * @return 归档结果
     */
    public Map<String, Object> archiveData(String dataId, Map<String, Object> retentionPolicy);

    /**
     * 数据清理
     * 
     * @param dataId 数据ID
     * @param reason 清理原因
     * @return 清理结果
     */
    public Map<String, Object> purgeData(String dataId, String reason);

    /**
     * 跨节点数据同步
     * 
     * @param dataType 数据类型
     * @return 同步结果
     */
    public Map<String, Object> syncDataAcrossNodes(String dataType);

    /**
     * 压缩历史数据
     * 
     * @param timeRange 时间范围
     * @return 压缩结果
     */
    public Map<String, Object> compressHistoricalData(Map<String, Object> timeRange);

    /**
     * 生成数据质量报告
     * 
     * @return 质量报告
     */
    public Map<String, Object> generateDataQualityReport();

    /**
     * 获取数据统计信息
     * 
     * @return 统计信息
     */
    public Map<String, Object> getDataStatistics();
}