package com.zy.asrs.service; import com.zy.asrs.domain.replay.ReplayChunk; import com.zy.asrs.domain.replay.ReplaySeekResult; import java.util.Map; public interface DeviceLogReplayService { Map createSession(String day, String type, Integer deviceNo, Integer stationId, Long targetTimestamp, Long windowStartTimeMs, Long windowEndTimeMs); class ReplayWindowException extends RuntimeException { private final String errorCode; public ReplayWindowException(String errorCode, String message) { super(message); this.errorCode = errorCode; } public String getErrorCode() { return errorCode; } } Map loadTimeline(String sessionId); Map loadTimelineSummary(String sessionId, Integer bucketCount); ReplayChunk loadChunk(String sessionId, Integer chunkIndex); ReplayChunk loadChunk(String sessionId, Integer chunkIndex, boolean fullFrames); ReplaySeekResult seek(String sessionId, Long timestamp, Long sampleSeq); Map resolveDevice(String sessionId, String type, Integer deviceNo, Integer stationId, Long timestamp); void closeSession(String sessionId); }