From 0fed50b5a97aeef23c670093de67c43fd404cd5a Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sat, 17 Jan 2026 02:18:01 +0000 Subject: [PATCH] feat: refactor realtime event types and payload structure for consistency --- app/game-api/test/realtimeSse.test.ts | 8 +------ app/game-engine/src/turn/turnDaemon.ts | 2 +- packages/common/src/realtime/types.ts | 32 ++++++++++++++------------ 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/app/game-api/test/realtimeSse.test.ts b/app/game-api/test/realtimeSse.test.ts index 2412a38..5bc63de 100644 --- a/app/game-api/test/realtimeSse.test.ts +++ b/app/game-api/test/realtimeSse.test.ts @@ -31,13 +31,7 @@ describe('parseRealtimeEvent', () => { const payload: RealtimeEvent = { type: 'turnCompleted', at: '2026-01-01T00:00:00.000Z', - result: { - lastTurnTime: '2026-01-01T00:00:00.000Z', - processedGenerals: 2, - processedTurns: 1, - durationMs: 1200, - partial: false, - }, + lastTurnTime: '2026-01-01T00:00:00.000Z', }; const parsed = parseRealtimeEvent(JSON.stringify(payload)); diff --git a/app/game-engine/src/turn/turnDaemon.ts b/app/game-engine/src/turn/turnDaemon.ts index 4d8ded4..9d25c5f 100644 --- a/app/game-engine/src/turn/turnDaemon.ts +++ b/app/game-engine/src/turn/turnDaemon.ts @@ -237,7 +237,7 @@ export const createTurnDaemonRuntime = async (options: TurnDaemonRuntimeOptions) await publishRealtimeEvent({ type: 'turnCompleted', at: new Date().toISOString(), - result, + lastTurnTime: result.lastTurnTime, }); } catch { // 실시간 이벤트 전송 실패는 턴 처리 결과에 영향을 주지 않는다. diff --git a/packages/common/src/realtime/types.ts b/packages/common/src/realtime/types.ts index ad191d3..d873d4b 100644 --- a/packages/common/src/realtime/types.ts +++ b/packages/common/src/realtime/types.ts @@ -1,18 +1,20 @@ -import type { TurnRunResult } from '../turnDaemon/types.js'; - export type MessageTypeKey = 'public' | 'private' | 'national' | 'diplomacy'; +export interface TurnCompletedEvent { + type: 'turnCompleted'; + at: string; + lastTurnTime: string; +} + +export interface MessageCreatedEvent { + type: 'messageCreated'; + at: string; + mailbox: number; + msgType: MessageTypeKey; + messageId: number; + senderId: number; +} + export type RealtimeEvent = - | { - type: 'turnCompleted'; - at: string; - result: TurnRunResult; - } - | { - type: 'messageCreated'; - at: string; - mailbox: number; - msgType: MessageTypeKey; - messageId: number; - senderId: number; - }; + | TurnCompletedEvent + | MessageCreatedEvent;