import { Prisma, TeamUser, UserRole } from '@prisma/client'; import { uuid } from 'lib/crypto'; import prisma from 'lib/prisma'; export async function createTeamUser( userId: string, teamId: string, roleId: string, ): Promise<[TeamUser, UserRole]> { const { client } = prisma; return client.$transaction([ client.teamUser.create({ data: { id: uuid(), userId, teamId, }, }), client.userRole.create({ data: { id: uuid(), userId, teamId, roleId, }, }), ]); } export async function getTeamUser(where: Prisma.TeamUserWhereInput): Promise { return prisma.client.teamUser.findFirst({ where, }); } export async function getTeamUsers(where: Prisma.TeamUserWhereInput): Promise { return prisma.client.teamUser.findMany({ where, }); } export async function updateTeamUser( data: Prisma.TeamUserUpdateInput, where: Prisma.TeamUserWhereUniqueInput, ): Promise { return prisma.client.teamUser.update({ data, where, }); } export async function deleteTeamUser(teamUserId: string): Promise { return prisma.client.teamUser.update({ data: { isDeleted: true, }, where: { id: teamUserId, }, }); }