diff --git a/concept.events.ts b/concept.events.ts index 1094691..dd1f7d8 100644 --- a/concept.events.ts +++ b/concept.events.ts @@ -1,30 +1,30 @@ -import { ConceptResponseDTO } from './dto/conceptresponse.dto'; - -export class ConceptCreateEvent { - type = 'create'; +import { ConceptResponseDTO } from "./dto/conceptresponse.dto"; +import type { ConceptEvent } from "./events"; +export class ConceptCreateEvent implements ConceptEvent { + type = "create"; constructor(public concept: ConceptResponseDTO) { this.concept = new ConceptResponseDTO(concept); } } -export class ConceptEditEvent { - type = 'edit'; +export class ConceptEditEvent implements ConceptEvent { + type = "edit"; constructor(public concept: ConceptResponseDTO) { this.concept = new ConceptResponseDTO(concept); } } -export class ConceptDeleteEvent { - type = 'delete'; +export class ConceptDeleteEvent implements ConceptEvent { + type = "delete"; constructor(public id: number) {} } -export class ConceptEnableEvent { - type = 'enable'; +export class ConceptEnableEvent implements ConceptEvent { + type = "enable"; constructor(public id: number) {} } -export class ConceptDisableEvent { - type = 'disable'; +export class ConceptDisableEvent implements ConceptEvent { + type = "disable"; constructor(public id: number) {} } diff --git a/events.ts b/events.ts new file mode 100644 index 0000000..b160e66 --- /dev/null +++ b/events.ts @@ -0,0 +1,3 @@ +export interface ConceptEvent { + type: string; +} diff --git a/game.events.ts b/game.events.ts index 53a2bd4..ad298f9 100644 --- a/game.events.ts +++ b/game.events.ts @@ -1,45 +1,46 @@ -import { MessageResponseDTO } from './dto/messageresponse.dto'; -import { PlayerResponseDTO } from './dto/playerresponse.dto'; +import { MessageResponseDTO } from "./dto/messageresponse.dto"; +import { PlayerResponseDTO } from "./dto/playerresponse.dto"; +import type { ConceptEvent } from "./events"; -export class GameStartEvent { - type = 'start'; +export class GameStartEvent implements ConceptEvent { + type = "start"; constructor(public currentPlayer: PlayerResponseDTO) { this.currentPlayer = new PlayerResponseDTO(currentPlayer); } } -export class GameDeleteEvent { - type = 'delete'; +export class GameDeleteEvent implements ConceptEvent { + type = "delete"; } -export class GameJoinEvent { - type = 'joingame'; +export class GameJoinEvent implements ConceptEvent { + type = "joingame"; constructor(public player: PlayerResponseDTO) { this.player = new PlayerResponseDTO(player); } } -export class GameLeaveEvent { - type = 'leavegame'; +export class GameLeaveEvent implements ConceptEvent { + type = "leavegame"; constructor(public player: PlayerResponseDTO) { this.player = new PlayerResponseDTO(player); } } -export class GameMessageEvent { - type = 'message'; +export class GameMessageEvent implements ConceptEvent { + type = "message"; constructor(public message: MessageResponseDTO) { this.message = new MessageResponseDTO(message); } } -export class GameMessageDeleteEvent { - type = 'deleteMessage'; +export class GameMessageDeleteEvent implements ConceptEvent { + type = "deleteMessage"; constructor(public messageId: number) {} } -export class GameEndTurnEvent { - type = 'endTurn'; +export class GameEndTurnEvent implements ConceptEvent { + type = "endTurn"; constructor(public currentPlayer: PlayerResponseDTO) { this.currentPlayer = new PlayerResponseDTO(currentPlayer); } diff --git a/lobby.events.ts b/lobby.events.ts index ee81cea..0c8ddce 100644 --- a/lobby.events.ts +++ b/lobby.events.ts @@ -1,28 +1,29 @@ -import { GameResponseDTO } from './dto/gameresponse.dto'; -import { PlayerResponseDTO } from './dto/playerresponse.dto'; +import { GameResponseDTO } from "./dto/gameresponse.dto"; +import { PlayerResponseDTO } from "./dto/playerresponse.dto"; +import type { ConceptEvent } from "./events"; -export class LobbyCreateEvent { - type = 'create'; +export class LobbyCreateEvent implements ConceptEvent { + type = "create"; game: GameResponseDTO; constructor(game: GameResponseDTO) { this.game = new GameResponseDTO(game); } } -export class LobbyStartEvent { - type = 'start'; +export class LobbyStartEvent implements ConceptEvent { + type = "start"; constructor(public game: GameResponseDTO) { this.game = new GameResponseDTO(game); } } -export class LobbyDeleteEvent { - type = 'delete'; +export class LobbyDeleteEvent implements ConceptEvent { + type = "delete"; constructor(public id: number) {} } -export class LobbyJoinEvent { - type = 'joingame'; +export class LobbyJoinEvent implements ConceptEvent { + type = "joingame"; constructor( public player: PlayerResponseDTO, public game: GameResponseDTO, @@ -32,8 +33,8 @@ export class LobbyJoinEvent { } } -export class LobbyLeaveEvent { - type = 'leavegame'; +export class LobbyLeaveEvent implements ConceptEvent { + type = "leavegame"; gameId?: number; constructor( public player: PlayerResponseDTO, diff --git a/word.events.ts b/word.events.ts index fb9a588..a567f4a 100644 --- a/word.events.ts +++ b/word.events.ts @@ -1,30 +1,31 @@ -import { WordResponseDTO } from './dto/wordresponse.dto'; +import { WordResponseDTO } from "./dto/wordresponse.dto"; +import type { ConceptEvent } from "./events"; -export class WordCreateEvent { - type = 'create'; +export class WordCreateEvent implements ConceptEvent { + type = "create"; constructor(public word: WordResponseDTO) { this.word = new WordResponseDTO(word); } } -export class WordEditEvent { - type = 'edit'; +export class WordEditEvent implements ConceptEvent { + type = "edit"; constructor(public word: WordResponseDTO) { this.word = new WordResponseDTO(word); } } -export class WordDeleteEvent { - type = 'delete'; +export class WordDeleteEvent implements ConceptEvent { + type = "delete"; constructor(public id: number) {} } -export class WordEnableEvent { - type = 'enable'; +export class WordEnableEvent implements ConceptEvent { + type = "enable"; constructor(public id: number) {} } -export class WordDisableEvent { - type = 'disable'; +export class WordDisableEvent implements ConceptEvent { + type = "disable"; constructor(public id: number) {} }