Compare commits

..

No commits in common. "3518bd77e8d8741dd7d82b43147436d4d8340464" and "79e7591dc771a378b961993197d1c7accf51c7b0" have entirely different histories.

7 changed files with 4 additions and 6240 deletions

View file

@ -1,4 +1,4 @@
import { eq, and, isNull, ne, sql } from "drizzle-orm";
import { eq, and, isNull } from "drizzle-orm";
import { database } from "~/database/context";
import * as schema from "~/database/schema";
import { generateFlagConfig } from "~/lib/flag-generator";
@ -61,21 +61,6 @@ export async function findTeamByOwnerAndSeason(
});
}
export async function findTeamByNameInSeason(
seasonId: string,
name: string,
excludeTeamId?: string
): Promise<Team | undefined> {
const db = database();
return await db.query.teams.findFirst({
where: and(
eq(schema.teams.seasonId, seasonId),
sql`lower(${schema.teams.name}) = lower(${name})`,
excludeTeamId ? ne(schema.teams.id, excludeTeamId) : undefined
),
});
}
export async function findAvailableTeams(seasonId: string): Promise<Team[]> {
const db = database();
return await db.query.teams.findMany({

View file

@ -19,7 +19,7 @@ import { deleteSeasonTimers } from "~/models/draft-timer";
import { findCurrentSeasonWithSports, type NewSeason, updateSeason } from "~/models/season";
import { linkMultipleSportsToSeason, unlinkSportFromSeason } from "~/models/season-sport";
import { findDraftableSportsSeasons, findSportsSeasonsByIds } from "~/models/sports-season";
import { claimTeam, deleteTeam, findTeamById, findTeamByNameInSeason, findTeamsBySeasonId, removeTeamOwner, renameTeam } from "~/models/team";
import { claimTeam, deleteTeam, findTeamById, findTeamsBySeasonId, removeTeamOwner, renameTeam } from "~/models/team";
import { findUserById, findUsersByIds, getUserDisplayName, isUserAdmin } from "~/models/user";
import { logCommissionerAction } from "~/models/audit-log";
import { parseDraftSpeed } from "~/lib/draft-timer";
@ -417,10 +417,6 @@ export async function action(args: Route.ActionArgs) {
if (username) {
const strippedName = stripOwnerFromTeamName(team.name, username);
if (strippedName !== team.name) {
const nameConflict = await findTeamByNameInSeason(team.seasonId, strippedName, teamId);
if (nameConflict) {
return { error: "Cannot remove owner: the resulting team name is already taken in this season." };
}
await renameTeam(teamId, strippedName);
}
await removeTeamOwner(teamId);
@ -482,10 +478,6 @@ export async function action(args: Route.ActionArgs) {
targetTeam.name,
assignedUser.username ?? assignedUser.displayName ?? "Member"
);
const nameConflict = await findTeamByNameInSeason(season.id, teamName, teamId);
if (nameConflict) {
return { error: "Cannot assign owner: the resulting team name is already taken in this season." };
}
await claimTeam(teamId, assignedUserId, teamName);
return { success: true, message: "Owner assigned successfully" };

View file

@ -4,7 +4,6 @@ import type { Route } from "./+types/$teamId.settings";
import {
findTeamById,
findTeamByNameInSeason,
updateTeam,
removeTeamOwner,
} from "~/models/team";
@ -157,17 +156,8 @@ export async function action(args: Route.ActionArgs) {
return { error: "Team name is required" };
}
const trimmedName = name.trim();
if (!trimmedName) {
return { error: "Team name is required" };
}
const conflict = await findTeamByNameInSeason(team.seasonId, trimmedName, teamId);
if (conflict) {
return { error: "A team with that name already exists in this season." };
}
await updateTeam(teamId, {
name: trimmedName,
name: name.trim(),
});
await syncPrivateBracktParticipants(team.seasonId);

View file

@ -246,9 +246,7 @@ export const teams = pgTable("teams", {
ownerId: varchar("owner_id", { length: 255 }), // UUID → users.id, nullable
createdAt: timestamp("created_at").defaultNow().notNull(),
updatedAt: timestamp("updated_at").defaultNow().notNull(),
}, (t) => [
uniqueIndex("teams_season_id_lower_name_unique").on(t.seasonId, sql`lower(${t.name})`),
]);
});
export const draftSlots = pgTable("draft_slots", {
id: uuid("id").primaryKey().defaultRandom(),

View file

@ -1 +0,0 @@
CREATE UNIQUE INDEX IF NOT EXISTS "teams_season_id_lower_name_unique" ON "teams" USING btree ("season_id",lower("name"));

File diff suppressed because it is too large Load diff

View file

@ -792,13 +792,6 @@
"when": 1779318579169,
"tag": "0112_married_captain_midlands",
"breakpoints": true
},
{
"idx": 113,
"version": "7",
"when": 1779579877169,
"tag": "0113_bent_banshee",
"breakpoints": true
}
]
}