TournamentLFGRepository
app/features/tournament-lfg/TournamentLFGRepository.server.ts- Tables
- PlusTierTenStarWeaponTournamentLFGLikeTournamentTeamTournamentTeamMemberUserUserSubmittedImageUserWeaponPool
- Calls
- ChatRepository
- Imports
- no other modules
- Used by
- 1 loader4 actions1 route1 script2 other
Functions & values
@returns user ids whose chat room set changed, for notifyRoomsChanged.
export function startLooking(args: { teamId: number; chatRoomExpiresAt: Date; }): Promise<number[]>
Unit tests (3)
Actions/to/:id/looking
export function insertPlaceholderTeam(args: CreatePlaceholderTeamArgs)
export async function findLookingTeamsByTournamentId(tournamentId: number)
Unit tests (4)
export async function findSubGroups(tournamentId: number)
@returns user ids whose chat room set changed, for notifyRoomsChanged.
export function mergeTeams({ survivingTeamId, otherTeamId, maxGroupSize, requireInGameNames, chatRoomExpiresAt, }: { survivingTeamId: number; otherTeamId: number; maxGroupSize: number; /** Fills the in-game name of members who don't have one yet, as registering does. */ requireInGameNames: boolean; chatRoomExpiresAt: Date; }): Promise<number[]>
Unit tests (10)
- merges two teams, other team is deleted
- demotes other team's OWNER to MANAGER
- throws when merged size exceeds maxGroupSize
- stops looking when merged team reaches max capacity
- survivor gets a chat room when merged size is 2+
- returns every member of the merged team
- fills in the in-game names of merged members when required
- deletes the other team's chat room
- clears likes on surviving team after merge
- resets createdAt of merged-in members so they sort after survivors
Actions/to/:id/looking
export async function insertLike({ likerTeamId, targetTeamId, }: { likerTeamId: number; targetTeamId: number; })
TablesTournamentLFGLike
export function deleteLike({ likerTeamId, targetTeamId, }: { likerTeamId: number; targetTeamId: number; })
TablesTournamentLFGLike
Actions/to/:id/looking
export async function findAllLikesByTeamId(teamId: number)
TablesTournamentLFGLike
export function updateTeamNote({ teamId, value, }: { teamId: number; value: string | null; })
TablesTournamentTeam
Unit tests (1)
Actions/to/:id/looking
export function updateMemberRole({ userId, teamId, role, }: { userId: number; teamId: number; role: Tables["TournamentTeamMember"]["role"]; })
TablesTournamentTeamMember
Actions/to/:id/looking
export function updateOwnStayAsSub({ teamId, value, }: { teamId: number; value: boolean; })
TablesTournamentTeamMember
Actions/to/:id/looking
@returns user ids whose chat room set changed, for notifyRoomsChanged.
export function leaveLfg({ userId, tournamentId, }: { userId: number; tournamentId: number; }): Promise<number[]>
Unit tests (2)
export async function findAllSubsByTournamentId(tournamentId: number)