diff --git a/app/models/LFGMatch.server.ts b/app/models/LFGMatch.server.ts index bd1e7ef74..16d7b9b04 100644 --- a/app/models/LFGMatch.server.ts +++ b/app/models/LFGMatch.server.ts @@ -65,8 +65,4 @@ export async function reportScore({ where lfg2.lfg_group_match_id = lfg."lfgGroupMatchId" and lfg2.order = lfg.order; `), ]); - // 1) update scores DONE - // 2) update skill DONE - // 3) update team skill? - // 4) if already reported error if different DONE } diff --git a/app/routes/play/match.$id.tsx b/app/routes/play/match.$id.tsx index 29bfa18ec..bae6f0f14 100644 --- a/app/routes/play/match.$id.tsx +++ b/app/routes/play/match.$id.tsx @@ -133,8 +133,6 @@ export const action: ActionFunction = async ({ } return { ok: data._action }; - - // TODO: notify watchers }; interface LFGMatchLoaderData { diff --git a/prisma/migrations/20220208084710_initial/migration.sql b/prisma/migrations/20220209185927_initial/migration.sql similarity index 92% rename from prisma/migrations/20220208084710_initial/migration.sql rename to prisma/migrations/20220209185927_initial/migration.sql index 9a932ba2a..cb595716b 100644 --- a/prisma/migrations/20220208084710_initial/migration.sql +++ b/prisma/migrations/20220209185927_initial/migration.sql @@ -210,18 +210,6 @@ CREATE TABLE "Skill" ( CONSTRAINT "Skill_pkey" PRIMARY KEY ("id") ); --- CreateTable -CREATE TABLE "GroupSkill" ( - "id" TEXT NOT NULL, - "mu" DOUBLE PRECISION NOT NULL, - "sigma" DOUBLE PRECISION NOT NULL, - "matchId" TEXT, - "tournamentId" TEXT, - "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "GroupSkill_pkey" PRIMARY KEY ("id") -); - -- CreateTable CREATE TABLE "_StageToTournament" ( "A" INTEGER NOT NULL, @@ -234,12 +222,6 @@ CREATE TABLE "_TournamentMatchGameResultToUser" ( "B" TEXT NOT NULL ); --- CreateTable -CREATE TABLE "_GroupSkillToUser" ( - "A" TEXT NOT NULL, - "B" TEXT NOT NULL -); - -- CreateIndex CREATE UNIQUE INDEX "User_discordId_key" ON "User"("discordId"); @@ -288,6 +270,12 @@ CREATE UNIQUE INDEX "LfgGroupMember_groupId_memberId_key" ON "LfgGroupMember"("g -- CreateIndex CREATE UNIQUE INDEX "LfgGroupMatchStage_lfgGroupMatchId_order_key" ON "LfgGroupMatchStage"("lfgGroupMatchId", "order"); +-- CreateIndex +CREATE UNIQUE INDEX "Skill_userId_matchId_key" ON "Skill"("userId", "matchId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Skill_userId_tournamentId_key" ON "Skill"("userId", "tournamentId"); + -- CreateIndex CREATE UNIQUE INDEX "_StageToTournament_AB_unique" ON "_StageToTournament"("A", "B"); @@ -300,12 +288,6 @@ CREATE UNIQUE INDEX "_TournamentMatchGameResultToUser_AB_unique" ON "_Tournament -- CreateIndex CREATE INDEX "_TournamentMatchGameResultToUser_B_index" ON "_TournamentMatchGameResultToUser"("B"); --- CreateIndex -CREATE UNIQUE INDEX "_GroupSkillToUser_AB_unique" ON "_GroupSkillToUser"("A", "B"); - --- CreateIndex -CREATE INDEX "_GroupSkillToUser_B_index" ON "_GroupSkillToUser"("B"); - -- AddForeignKey ALTER TABLE "Organization" ADD CONSTRAINT "Organization_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; @@ -393,12 +375,6 @@ ALTER TABLE "Skill" ADD CONSTRAINT "Skill_tournamentId_fkey" FOREIGN KEY ("tourn -- AddForeignKey ALTER TABLE "Skill" ADD CONSTRAINT "Skill_matchId_fkey" FOREIGN KEY ("matchId") REFERENCES "LfgGroupMatch"("id") ON DELETE SET NULL ON UPDATE CASCADE; --- AddForeignKey -ALTER TABLE "GroupSkill" ADD CONSTRAINT "GroupSkill_tournamentId_fkey" FOREIGN KEY ("tournamentId") REFERENCES "Tournament"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "GroupSkill" ADD CONSTRAINT "GroupSkill_matchId_fkey" FOREIGN KEY ("matchId") REFERENCES "LfgGroupMatch"("id") ON DELETE SET NULL ON UPDATE CASCADE; - -- AddForeignKey ALTER TABLE "_StageToTournament" ADD FOREIGN KEY ("A") REFERENCES "Stage"("id") ON DELETE CASCADE ON UPDATE CASCADE; @@ -410,9 +386,3 @@ ALTER TABLE "_TournamentMatchGameResultToUser" ADD FOREIGN KEY ("A") REFERENCES -- AddForeignKey ALTER TABLE "_TournamentMatchGameResultToUser" ADD FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_GroupSkillToUser" ADD FOREIGN KEY ("A") REFERENCES "GroupSkill"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "_GroupSkillToUser" ADD FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index fb56cc99c..330901ef1 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -27,7 +27,6 @@ model User { tournamentMatches TournamentMatchGameResult[] lfgGroups LfgGroupMember[] skill Skill[] - groupSkills GroupSkill[] } model Organization { @@ -43,28 +42,27 @@ model Organization { } model Tournament { - id String @id @default(uuid()) - name String + id String @id @default(uuid()) + name String // Name in lower case to show in URL - nameForUrl String - description String - startTime DateTime - checkInStartTime DateTime + nameForUrl String + description String + startTime DateTime + checkInStartTime DateTime // CSS for tournament banner's background value - bannerBackground String + bannerBackground String // CSS for tournament banner's color value - bannerTextHSLArgs String + bannerTextHSLArgs String // Team ID's in an array in the order of the seed. 0 index is 1st seed, 1 index is 2nd seed etc. // Any team not in the list will be at the bottom in the order of their createdAt time stamp // (older teams first) - seeds String[] - mapPool Stage[] - organizerId String - organizer Organization @relation(fields: [organizerId], references: [id]) - teams TournamentTeam[] - brackets TournamentBracket[] - changedSkills Skill[] - changedGroupSkills GroupSkill[] + seeds String[] + mapPool Stage[] + organizerId String + organizer Organization @relation(fields: [organizerId], references: [id]) + teams TournamentTeam[] + brackets TournamentBracket[] + changedSkills Skill[] // There might be duplicate nameForUrl's but inside an organization they're unique @@unique([nameForUrl, organizerId]) @@ -257,12 +255,11 @@ model LfgGroupMember { } model LfgGroupMatch { - id String @id @default(uuid()) - createdAt DateTime @default(now()) - groups LfgGroup[] - changedSkills Skill[] - stages LfgGroupMatchStage[] - changedGroupSkills GroupSkill[] + id String @id @default(uuid()) + createdAt DateTime @default(now()) + groups LfgGroup[] + changedSkills Skill[] + stages LfgGroupMatchStage[] } model LfgGroupMatchStage { @@ -288,16 +285,8 @@ model Skill { user User @relation(fields: [userId], references: [id]) match LfgGroupMatch? @relation(fields: [matchId], references: [id]) tournament Tournament? @relation(fields: [tournamentId], references: [id]) -} -model GroupSkill { - id String @id @default(uuid()) - mu Float - sigma Float - matchId String? - tournamentId String? - createdAt DateTime @default(now()) - users User[] - match LfgGroupMatch? @relation(fields: [matchId], references: [id]) - tournament Tournament? @relation(fields: [tournamentId], references: [id]) + // One event can only count for skill once + @@unique([userId, matchId]) + @@unique([userId, tournamentId]) }