package com.usky.vpp.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.vpp.service.vo.DrMonitorCurveVO;
import com.usky.vpp.service.vo.DrMonitorRecordVO;
import com.usky.vpp.service.vo.DrMonitorSummaryVO;

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

/**
 * 需求响应监测（响应记录）
 */
public interface VppDrMonitorService {

    /**
     * 顶部 KPI
     *
     * @param startDate 开始日期 yyyy-MM-dd
     * @param endDate   结束日期 yyyy-MM-dd
     * @param siteIds   站点 ID（必填，可多个）；先查站点下 is_support_peak=1 资源点再平均
     */
    DrMonitorSummaryVO getSummary(String startDate, String endDate, List<Long> siteIds);

    /**
     * 响应记录分页（按事件表字段；仅可调峰资源点参与过的事件）
     */
    CommonPage<DrMonitorRecordVO> pageRecords(String startDate, String endDate,
                                              List<Long> siteIds, Map<String, Object> params);

    /**
     * 折线图：基线/实际负荷按可调峰资源点加权平均；申报/实际响应按资源点平均
     */
    DrMonitorCurveVO getCurve(Long eventId, List<Long> siteIds);
}
