package com.lingniu.ingest.api.spi;

import com.lingniu.ingest.api.event.VehicleEvent;

import java.util.List;

/**
 * 协议消息 → 领域事件的映射器（Adapter 模式）。
 *
 * <p>实现类负责把"我这个协议特有的 Java 对象"翻译成统一的 {@link VehicleEvent}。
 * 允许一条协议消息展开为多条领域事件（例如 32960 的一次实时上报同时产出 Realtime + Location）。
 */
@FunctionalInterface
public interface EventMapper<I> {
    List<VehicleEvent> toEvents(I message);
}
