Newer
Older
PixelPaintWar / apps / server / src / domains / room / application / services / RoomPhaseService.ts
/**
 * RoomPhaseService
 * ルーム状態のフェーズ更新処理を提供する
 */
import { roomConsts } from "@repo/shared";
import type { roomTypes } from "@repo/shared";

/** ルーム状態のフェーズ遷移を管理するサービス */
export class RoomPhaseService {
  constructor(private rooms: Map<string, roomTypes.Room>) {}

  public markRoomPlaying(roomId: string): roomTypes.Room | undefined {
    const room = this.rooms.get(roomId);
    if (!room) {
      return undefined;
    }

    room.status = roomConsts.RoomPhase.PLAYING;
    return room;
  }

  public markRoomWaiting(roomId: string): roomTypes.Room | undefined {
    const room = this.rooms.get(roomId);
    if (!room) {
      return undefined;
    }

    room.status = roomConsts.RoomPhase.WAITING;
    return room;
  }
}