package com.aegis.resource.dashboard.service;

import java.util.List;
import java.util.Map;
import com.aegis.resource.dashboard.vo.InventoryAlertVO;
import com.aegis.resource.dashboard.vo.ResourceStatsVO;
import com.aegis.resource.dashboard.vo.UsageTrendVO;

/**
 * 资源看板Service接口
 * 
 * @author aegis
 */
public interface IResourceDashboardService {
    
    /**
     * 获取资源总览统计
     * 
     * @return 资源统计信息
     */
    ResourceStatsVO getResourceStats();
    
    /**
     * 获取库存预警列表
     * 
     * @return 库存预警列表
     */
    List<InventoryAlertVO> getInventoryAlerts();
    
    /**
     * 获取采购状态统计
     * 
     * @return 各状态采购数量
     */
    Map<String, Integer> getProcurementStatus();
    
    /**
     * 获取征用状态统计
     * 
     * @return 各状态征用数量
     */
    Map<String, Integer> getRequisitionStatus();
    
    /**
     * 获取资源状态分布
     * 
     * @return 资源状态分布（百分比）
     */
    Map<String, Map<String, Double>> getResourceDistribution();
    
    /**
     * 获取资源使用趋势
     * 
     * @param days 统计天数（默认7天）
     * @return 使用趋势数据
     */
    UsageTrendVO getUsageTrends(Integer days);
    
    /**
     * 刷新看板缓存
     * 清除所有看板相关缓存，下次查询时会重新从数据库加载
     */
    void refreshDashboardCache();
}