package com.usky.vpp.service;

import com.usky.vpp.domain.VppDrEvent;

import java.util.Map;

/**
 * 运管平台邀约/出清报文入库
 */
public interface VppDrEventIngestService {

    /**
     * 解析 DistributeEventRequest（Poll 拉取或 UN 推送），写入 vpp_dr_event
     */
    VppDrEvent ingestDistributeEvent(Map<String, Object> body, String source);

    /**
     * @deprecated 请使用 {@link #ingestDistributeEvent}
     */
    @Deprecated
    VppDrEvent ingestInvitation(Map<String, Object> body, String source);

    /**
     * 处理 CreateCqRequest（DN→UN 分拆出清申报前的本地同步，或联调回显）
     */
    VppDrEvent ingestCreateCqRequest(Map<String, Object> body, String source);

    /**
     * 处理 CreateOptRequest：optOut 取消事件；optIn 同步 list 申报
     */
    VppDrEvent ingestCreateOptRequest(Map<String, Object> body, String source);

    /**
     * 出清公示确认后更新事件状态（配合 CreateEventResponse）
     */
    VppDrEvent acknowledgeClearingPublicity(String platformEventId, Map<String, Object> body, String source);
}
