import { MessageResponseDTO } from './dto/messageresponse.dto'; import { PlayerResponseDTO } from './dto/playerresponse.dto'; import type { ConceptEvent } from './events'; export class GameStartEvent implements ConceptEvent { type = 'start'; constructor(public currentPlayer: PlayerResponseDTO) { this.currentPlayer = new PlayerResponseDTO(currentPlayer); } } export class GameDeleteEvent implements ConceptEvent { type = 'delete'; } export class GameJoinEvent implements ConceptEvent { type = 'joingame'; constructor(public player: PlayerResponseDTO) { this.player = new PlayerResponseDTO(player); } } export class GameLeaveEvent implements ConceptEvent { type = 'leavegame'; constructor(public player: PlayerResponseDTO) { this.player = new PlayerResponseDTO(player); } } export class GameMessageEvent implements ConceptEvent { type = 'message'; constructor(public message: MessageResponseDTO) { this.message = new MessageResponseDTO(message); } } export class GameMessageDeleteEvent implements ConceptEvent { type = 'deleteMessage'; constructor(public messageId: number) {} } export class GameEndTurnEvent implements ConceptEvent { type = 'endTurn'; constructor(public currentPlayer: PlayerResponseDTO) { this.currentPlayer = new PlayerResponseDTO(currentPlayer); } }