package com.seer.teach.teacher.processor.base;

import reactor.core.publisher.Flux;

/**
 * 流处理框架统一接口。
 * 所有学习、上课、对话类流处理器都应实现该接口。
 */
public interface StreamProcessor<REQ, RESP, RECORD> {

    /**
     * 启动流处理。
     *
     * @param userId 用户ID
     * @param req    流请求对象（每类流不同）
     * @param device 设备编码（唯一标识一个终端）
     * @param flux   LLM SSE流响应
     * @param record 该次学习/复习对应记录实体对象
     */
    void process(Integer userId,
                 REQ req,
                 String device,
                 Flux<RESP> flux,
                 RECORD record);
}
