@readerseye2/cr_type 1.0.75 → 1.0.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -175,6 +175,59 @@ export interface SegmentEndedPayload {
175
175
  segmentIndex: number;
176
176
  endedAt: number;
177
177
  }
178
+ /** 녹화 목록 조회 요청 */
179
+ export interface RecordingListPayload {
180
+ /** 조회할 가족 ID (Admin은 모든 가족, Parent는 자신의 가족만) */
181
+ familyId?: number;
182
+ /** 조회할 뷰어 사용자 ID */
183
+ viewerUserId?: number;
184
+ /** 상태 필터 */
185
+ status?: RecordingStatus;
186
+ /** 페이지네이션 */
187
+ limit?: number;
188
+ offset?: number;
189
+ }
190
+ /** 녹화 상세 조회 요청 */
191
+ export interface RecordingGetPayload {
192
+ recordingId: string;
193
+ }
194
+ /** 세그먼트 상세 조회 요청 */
195
+ export interface SegmentGetPayload {
196
+ recordingId: string;
197
+ segmentIndex: number;
198
+ }
199
+ /** 청크 조회 요청 (재생용) */
200
+ export interface ChunksGetPayload {
201
+ recordingId: string;
202
+ segmentIndex: number;
203
+ /** 시작 timestamp (이 시점부터 청크 조회) */
204
+ fromTimestamp?: number;
205
+ /** 종료 timestamp (이 시점까지 청크 조회) */
206
+ toTimestamp?: number;
207
+ }
208
+ /** 녹화 목록 조회 결과 */
209
+ export interface RecordingListResultPayload {
210
+ recordings: RecordingManifest[];
211
+ total: number;
212
+ hasMore: boolean;
213
+ }
214
+ /** 녹화 상세 조회 결과 */
215
+ export interface RecordingManifestPayload {
216
+ manifest: RecordingManifest;
217
+ }
218
+ /** 세그먼트 상세 조회 결과 */
219
+ export interface SegmentMetaPayload {
220
+ recordingId: string;
221
+ segment: SegmentMeta;
222
+ }
223
+ /** 청크 조회 결과 */
224
+ export interface ChunksResultPayload {
225
+ recordingId: string;
226
+ segmentIndex: number;
227
+ chunks: ChunkFile[];
228
+ /** 요청 시점에 가장 가까운 스냅샷 (Seek 시 초기 상태 복원용) */
229
+ nearestSnapshot: SnapshotFile | null;
230
+ }
178
231
  /** 녹화 목록 조회 응답 */
179
232
  export interface RecordingListResponse {
180
233
  recordings: RecordingManifest[];
@@ -1,6 +1,7 @@
1
1
  import { ChatMessageReadRequest, ChatMessageRefreshRequest, MessageRequest } from "./socket-message.types";
2
2
  import { SessionStartPayload, SessionEndPayload, SessionProgressPayload, SessionEventPayload, SessionSubscribePayload } from "./reading-section.types";
3
3
  import { MonitorStartPayload, MonitorStopPayload } from "./monitor.types";
4
+ import { RecordingStartPayload, RecordingStopPayload, RecordingListPayload, RecordingGetPayload, SegmentGetPayload, ChunksGetPayload } from "./recording.types";
4
5
  export interface ClientToServerEvents {
5
6
  'chat-message:send': (msg: MessageRequest) => void;
6
7
  'chat-message:refresh': (msg: ChatMessageRefreshRequest) => void;
@@ -24,5 +25,14 @@ export interface MonitorAdminToServerEvents {
24
25
  'monitor:start': (payload: MonitorStartPayload) => void;
25
26
  'monitor:stop': (payload: MonitorStopPayload) => void;
26
27
  }
27
- export interface AdminClientToServerEvents extends ClientToServerEvents, NoticeToServerEvents, ReadingAdminToServerEvents, MonitorAdminToServerEvents {
28
+ /** 녹화 이벤트 (Admin/Parent Server) - P2.2 Recording System */
29
+ export interface RecordingAdminToServerEvents {
30
+ 'recording:start': (payload: RecordingStartPayload) => void;
31
+ 'recording:stop': (payload: RecordingStopPayload) => void;
32
+ 'recording:list': (payload: RecordingListPayload) => void;
33
+ 'recording:get': (payload: RecordingGetPayload) => void;
34
+ 'recording:get-segment': (payload: SegmentGetPayload) => void;
35
+ 'recording:get-chunks': (payload: ChunksGetPayload) => void;
36
+ }
37
+ export interface AdminClientToServerEvents extends ClientToServerEvents, NoticeToServerEvents, ReadingAdminToServerEvents, MonitorAdminToServerEvents, RecordingAdminToServerEvents {
28
38
  }
@@ -2,6 +2,7 @@ import { MessageReadResponse, MessageResponse, NoticeMessageResult } from "./soc
2
2
  import { ReadingSessionInfo, SocketViewerEvent, ViewerSnapshot } from "./reading-section.types";
3
3
  import { ConnectedUser, ConnectedUsersGrouped } from "./connected-user.types";
4
4
  import { MonitorStartedPayload, MonitorChunkPayload, MonitorSessionChangedPayload, MonitorStoppedPayload, MonitorErrorPayload } from "./monitor.types";
5
+ import { RecordingStartedPayload, RecordingStoppedPayload, RecordingChunkPayload, SegmentStartedPayload, SegmentEndedPayload, RecordingListResultPayload, RecordingManifestPayload, SegmentMetaPayload, ChunksResultPayload } from "./recording.types";
5
6
  export interface ServerToClientEvents {
6
7
  connect: () => void;
7
8
  disconnect: () => void;
@@ -69,5 +70,20 @@ export interface MonitorServerToClientEvents {
69
70
  'monitor:stopped': (payload: MonitorStoppedPayload) => void;
70
71
  'monitor:error': (payload: MonitorErrorPayload) => void;
71
72
  }
72
- export interface AdminServerToClientEvents extends ServerToClientEvents, NoticeToClientEvents, ReadingServerToClientEvents, UserServerToClientEvents, MonitorServerToClientEvents {
73
+ /** 녹화 이벤트 (Admin/Parent에게 전송) - P2.2 Recording System */
74
+ export interface RecordingServerToClientEvents {
75
+ 'recording:started': (payload: RecordingStartedPayload) => void;
76
+ 'recording:stopped': (payload: RecordingStoppedPayload) => void;
77
+ 'recording:chunk': (payload: RecordingChunkPayload) => void;
78
+ 'recording:segment-started': (payload: SegmentStartedPayload) => void;
79
+ 'recording:segment-ended': (payload: SegmentEndedPayload) => void;
80
+ 'recording:error': (payload: {
81
+ message: string;
82
+ }) => void;
83
+ 'recording:list-result': (payload: RecordingListResultPayload) => void;
84
+ 'recording:manifest': (payload: RecordingManifestPayload) => void;
85
+ 'recording:segment': (payload: SegmentMetaPayload) => void;
86
+ 'recording:chunks': (payload: ChunksResultPayload) => void;
87
+ }
88
+ export interface AdminServerToClientEvents extends ServerToClientEvents, NoticeToClientEvents, ReadingServerToClientEvents, UserServerToClientEvents, MonitorServerToClientEvents, RecordingServerToClientEvents {
73
89
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@readerseye2/cr_type",
3
- "version": "1.0.75",
3
+ "version": "1.0.78",
4
4
  "description": "CheckReading shared TypeScript types",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",