diff --git a/apps/server/src/domains/room/RoomManager.ts b/apps/server/src/domains/room/RoomManager.ts index defaf38..ff3bb62 100644 --- a/apps/server/src/domains/room/RoomManager.ts +++ b/apps/server/src/domains/room/RoomManager.ts @@ -1,8 +1,13 @@ +/** + * RoomManager + * ルーム状態の保持とルーム操作サービスへの委譲を担うマネージャ + */ import type { roomTypes } from "@repo/shared"; import { RoomJoinService } from "./application/services/RoomJoinService"; import { RoomExitService } from "./application/services/RoomExitService"; import { RoomQueryService } from "./application/services/RoomQueryService"; +/** ルーム操作の公開インターフェースを提供するマネージャ */ export class RoomManager { private rooms: Map = new Map(); private roomJoinService: RoomJoinService; @@ -15,17 +20,17 @@ this.roomQueryService = new RoomQueryService(this.rooms); } - // ルームにプレイヤーを追加(なければ作成) + // ルームにプレイヤーを追加する,ルームが未作成なら新規作成する public addPlayerToRoom(roomId: string, socketId: string, playerName: string): roomTypes.Room { return this.roomJoinService.addPlayerToRoom(roomId, socketId, playerName); } - // プレイヤーをルームから削除し、更新があったルームの配列を返す + // プレイヤーをルームから削除し,更新が発生したルーム配列を返す public removePlayer(socketId: string): roomTypes.Room[] { return this.roomExitService.removePlayer(socketId); } - // オーナーIDからルームを取得 + // オーナーIDからルームを取得する public getRoomByOwnerId(ownerId: string): roomTypes.Room | undefined { return this.roomQueryService.getRoomByOwnerId(ownerId); } diff --git a/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts b/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts index 37d7416..c3e9cb8 100644 --- a/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts +++ b/apps/server/src/domains/room/application/ports/roomUseCasePorts.ts @@ -1,9 +1,15 @@ +/** + * roomUseCasePorts + * ルームユースケースが依存する操作ポートを定義する + */ import type { roomTypes } from "@repo/shared"; +/** ルーム参加ユースケースが利用する参加操作ポート */ export interface JoinRoomPort { addPlayerToRoom(roomId: string, socketId: string, playerName: string): roomTypes.Room; } +/** ルーム切断ユースケースが利用する退出操作ポート */ export interface DisconnectRoomPort { removePlayer(socketId: string): roomTypes.Room[]; } diff --git a/apps/server/src/domains/room/application/services/RoomExitService.ts b/apps/server/src/domains/room/application/services/RoomExitService.ts index f7b8106..36696e3 100644 --- a/apps/server/src/domains/room/application/services/RoomExitService.ts +++ b/apps/server/src/domains/room/application/services/RoomExitService.ts @@ -1,6 +1,11 @@ +/** + * RoomExitService + * ルーム退出処理とオーナー移譲処理を担うサービス + */ import type { roomTypes } from "@repo/shared"; import { logEvent } from "@server/logging/logEvent"; +/** 退出要求に応じてプレイヤー削除とルーム整理を行うサービス */ export class RoomExitService { constructor(private rooms: Map) {} diff --git a/apps/server/src/domains/room/application/services/RoomJoinService.ts b/apps/server/src/domains/room/application/services/RoomJoinService.ts index c9082d7..4af2108 100644 --- a/apps/server/src/domains/room/application/services/RoomJoinService.ts +++ b/apps/server/src/domains/room/application/services/RoomJoinService.ts @@ -1,7 +1,12 @@ +/** + * RoomJoinService + * ルーム作成とプレイヤー参加処理を担うサービス + */ import { config, roomConsts } from "@repo/shared"; import type { roomTypes } from "@repo/shared"; import { logEvent } from "@server/logging/logEvent"; +/** 参加要求に応じてルーム作成と参加者追加を行うサービス */ export class RoomJoinService { constructor(private rooms: Map) {} diff --git a/apps/server/src/domains/room/application/services/RoomQueryService.ts b/apps/server/src/domains/room/application/services/RoomQueryService.ts index 3ad5dc2..89abc7c 100644 --- a/apps/server/src/domains/room/application/services/RoomQueryService.ts +++ b/apps/server/src/domains/room/application/services/RoomQueryService.ts @@ -1,5 +1,10 @@ +/** + * RoomQueryService + * ルーム状態の参照系クエリを提供するサービス + */ import type { roomTypes } from "@repo/shared"; +/** ルームの参照クエリを提供するサービス */ export class RoomQueryService { constructor(private rooms: Map) {} diff --git a/apps/server/src/domains/room/application/useCases/joinRoomUseCase.ts b/apps/server/src/domains/room/application/useCases/joinRoomUseCase.ts index c65239f..661618c 100644 --- a/apps/server/src/domains/room/application/useCases/joinRoomUseCase.ts +++ b/apps/server/src/domains/room/application/useCases/joinRoomUseCase.ts @@ -1,3 +1,7 @@ +/** + * joinRoomUseCase + * ルーム参加要求を処理し,状態更新を配信するユースケース + */ import type { roomTypes } from "@repo/shared"; import type { JoinRoomPort } from "../ports/roomUseCasePorts"; import { logEvent } from "@server/logging/logEvent"; @@ -9,6 +13,7 @@ publishRoomUpdate: (roomId: roomTypes.Room["roomId"], room: roomTypes.Room) => void; }; +/** 参加イベントを受け取り,ルーム更新を配信する */ export const joinRoomUseCase = ({ roomManager, socketId, diff --git a/apps/server/src/domains/room/application/useCases/roomDisconnectUseCase.ts b/apps/server/src/domains/room/application/useCases/roomDisconnectUseCase.ts index 2e54090..1f3a4e1 100644 --- a/apps/server/src/domains/room/application/useCases/roomDisconnectUseCase.ts +++ b/apps/server/src/domains/room/application/useCases/roomDisconnectUseCase.ts @@ -1,3 +1,7 @@ +/** + * roomDisconnectUseCase + * 切断時のルーム退出処理と状態更新配信を行うユースケース + */ import type { DisconnectRoomPort } from "../ports/roomUseCasePorts"; import type { roomTypes } from "@repo/shared"; import { logEvent } from "@server/logging/logEvent"; @@ -8,6 +12,7 @@ publishRoomUpdate: (roomId: roomTypes.Room["roomId"], room: roomTypes.Room) => void; }; +/** 切断ソケットを各ルームから退出させ,更新ルームを配信する */ export const roomDisconnectUseCase = ({ roomManager, socketId,