diff --git a/prisma/schema.prisma b/prisma/schema.prisma index cd7e690..45a2c78 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -58,7 +58,7 @@ model ProjectMember { projectId String userId String role Role @default(USER) - project Project @relation(fields: [projectId], references: [id]) + project Project @relation(fields: [projectId], references: [id], onDelete: Cascade) user User @relation(fields: [userId], references: [id]) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/src/actions/projects/deleteProject/logic.ts b/src/actions/projects/deleteProject/logic.ts index 31d04b7..3ce3e01 100644 --- a/src/actions/projects/deleteProject/logic.ts +++ b/src/actions/projects/deleteProject/logic.ts @@ -1,13 +1,17 @@ import 'server-only'; import { prisma } from '@/lib/prisma'; -import { Result, success } from '@/lib/result'; +import { Result, success, err } from '@/lib/result'; import { DeleteProjectInput } from './schema'; export async function deleteProject(input: DeleteProjectInput): Promise> { - await prisma.project.delete({ - where: { id: input.id } - }); - - return success(undefined); + try { + await prisma.project.deleteMany({ + where: { id: input.id } + }); + return success(undefined); + } catch (error) { + console.error("Failed to delete project:", error); + return err("Failed to delete project due to an unexpected error."); + } }