sendou.ink/app/features/sendouq/core/groups.ts
Kalle c0ec15b7de
Some checks failed
Tests and checks on push / run-checks-and-tests (push) Has been cancelled
Updates translation progress / update-translation-progress-issue (push) Has been cancelled
Unify db type files
2025-03-21 21:47:08 +02:00

37 lines
852 B
TypeScript

import type { Tables } from "~/db/tables";
import type { LookingGroup } from "../q-types";
// logic is that team who is bigger decides the settings
// but if groups are the same size then the one who liked
// is basically consenting that other team's setting are used
export function groupAfterMorph({
ourGroup,
theirGroup,
liker,
}: {
ourGroup: LookingGroup;
theirGroup: LookingGroup;
liker: "US" | "THEM";
}) {
const ourMembers = ourGroup.members ?? [];
const theirMembers = theirGroup.members ?? [];
if (ourMembers.length > theirMembers.length) {
return ourGroup;
}
if (theirMembers.length > ourMembers.length) {
return theirGroup;
}
if (liker === "US") {
return theirGroup;
}
return ourGroup;
}
export function hasGroupManagerPerms(role: Tables["GroupMember"]["role"]) {
return role === "OWNER" || role === "MANAGER";
}