package com.usky.vpp.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.vpp.service.vo.DrSubsidyPredictionCalculateRequest;
import com.usky.vpp.service.vo.DrSubsidyPredictionRequest;
import com.usky.vpp.service.vo.DrSubsidyPredictionVO;

/**
 * 补贴金额预测 业务接口
 */
public interface VppDrSubsidyPredictionService {

    /**
     * 分页查询补贴金额预测
     */
    CommonPage<DrSubsidyPredictionVO> page(String siteName, String customerName,
                                           String startTime, String endTime,
                                           Integer current, Integer size);

    /**
     * 试算补贴预测（不落库）。
     * <p>入参为邀约编号 + 电网实际响应容量；补贴金额按统一计算器口径计算。</p>
     */
    DrSubsidyPredictionVO calculate(DrSubsidyPredictionCalculateRequest request);

    /**
     * 新增补贴预测：按前端传参直接入库，服务端不再重算。
     */
    Boolean create(DrSubsidyPredictionRequest request);

    /**
     * 修改补贴预测：按前端传参直接入库，服务端不再重算。
     */
    Boolean update(DrSubsidyPredictionRequest request);

    /**
     * 删除补贴预测
     */
    Boolean delete(Long id);

    /**
     * 根据事件ID生成/更新补贴预测数据
     */
    void generateByEventId(Long drEventId);
}
