aboutsummaryrefslogtreecommitdiff
path: root/src/queries/prisma/teamUser.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-01-24 13:09:50 +0000
committerFuwn <[email protected]>2026-01-24 13:09:50 +0000
commit396acf3bbbe00a192cb0ea0a9ccf91b1d8d2850b (patch)
treeb9df4ca6a70db45cfffbae6fdd7252e20fb8e93c /src/queries/prisma/teamUser.ts
downloadumami-main.tar.xz
umami-main.zip
Initial commitHEADmain
Created from https://vercel.com/new
Diffstat (limited to 'src/queries/prisma/teamUser.ts')
-rw-r--r--src/queries/prisma/teamUser.ts66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/queries/prisma/teamUser.ts b/src/queries/prisma/teamUser.ts
new file mode 100644
index 0000000..2210dee
--- /dev/null
+++ b/src/queries/prisma/teamUser.ts
@@ -0,0 +1,66 @@
+import { Prisma } from '@/generated/prisma/client';
+import { uuid } from '@/lib/crypto';
+import prisma from '@/lib/prisma';
+import type { QueryFilters } from '@/lib/types';
+
+import TeamUserFindManyArgs = Prisma.TeamUserFindManyArgs;
+
+export async function findTeamUser(criteria: Prisma.TeamUserFindUniqueArgs) {
+ return prisma.client.teamUser.findUnique(criteria);
+}
+
+export async function getTeamUser(teamId: string, userId: string) {
+ return prisma.client.teamUser.findFirst({
+ where: {
+ teamId,
+ userId,
+ },
+ });
+}
+
+export async function getTeamUsers(criteria: TeamUserFindManyArgs, filters?: QueryFilters) {
+ const { search } = filters;
+
+ const where: Prisma.TeamUserWhereInput = {
+ ...criteria.where,
+ ...prisma.getSearchParameters(search, [{ user: { username: 'contains' } }]),
+ };
+
+ return prisma.pagedQuery(
+ 'teamUser',
+ {
+ ...criteria,
+ where,
+ },
+ filters,
+ );
+}
+
+export async function createTeamUser(userId: string, teamId: string, role: string) {
+ return prisma.client.teamUser.create({
+ data: {
+ id: uuid(),
+ userId,
+ teamId,
+ role,
+ },
+ });
+}
+
+export async function updateTeamUser(teamUserId: string, data: Prisma.TeamUserUpdateInput) {
+ return prisma.client.teamUser.update({
+ where: {
+ id: teamUserId,
+ },
+ data,
+ });
+}
+
+export async function deleteTeamUser(teamId: string, userId: string) {
+ return prisma.client.teamUser.deleteMany({
+ where: {
+ teamId,
+ userId,
+ },
+ });
+}