LobbyService: create lobby, join lobby, enforce player limit #32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Service layer for lobby business logic, between controller (HTTP) and model (database).
What to do
Implement
LobbyServicefollowing existing service patterns.Files to create
apps/api/src/services/lobbyService.tsKey functions
createLobby(hostUserId, gameMode, isPrivate, maxPlayers)— generate unique code, insert lobby + host as first player.joinLobby(code, userId)— validate lobby exists, is 'waiting', not full. Insert player.leaveLobby(lobbyId, userId)— remove player. If host leaves, close lobby or transfer host.getPublicLobbies()— lobbies whereis_private = falseandstatus = 'waiting'.getLobby(code)— lobby with players.Acceptance criteria
Notes
Reference:
apps/api/src/services/gameService.ts. The service never imports fromdrizzle-orm— it calls functions frompackages/db/src/models/.