sendou.ink/app/features/sendouq/queries/groupSuccessorOwner.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

28 lines
649 B
TypeScript

import { sql } from "~/db/sql";
import type { Tables } from "~/db/tables";
const stm = sql.prepare(/* sql */ `
select
"GroupMember"."userId",
"GroupMember"."role"
from "GroupMember"
where "GroupMember"."groupId" = @groupId
and "GroupMember"."role" != 'OWNER'
order by "GroupMember"."createdAt" asc
`);
export const groupSuccessorOwner = (groupId: number) => {
const rows = stm.all({ groupId }) as Array<
Pick<Tables["GroupMember"], "role" | "userId">
>;
if (rows.length === 0) {
return null;
}
const manager = rows.find((r) => r.role === "MANAGER");
if (manager) return manager.userId;
return rows[0].userId;
};