fix(database): add composite unique constraints for workspace isolation
This commit is contained in:
@@ -267,6 +267,7 @@ model Task {
|
|||||||
subtasks Task[] @relation("TaskSubtasks")
|
subtasks Task[] @relation("TaskSubtasks")
|
||||||
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@index([workspaceId])
|
@@index([workspaceId])
|
||||||
@@index([workspaceId, status])
|
@@index([workspaceId, status])
|
||||||
@@index([workspaceId, dueDate])
|
@@index([workspaceId, dueDate])
|
||||||
@@ -300,6 +301,7 @@ model Event {
|
|||||||
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
|
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
|
||||||
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@index([workspaceId])
|
@@index([workspaceId])
|
||||||
@@index([workspaceId, startTime])
|
@@index([workspaceId, startTime])
|
||||||
@@index([creatorId])
|
@@index([creatorId])
|
||||||
@@ -331,6 +333,7 @@ model Project {
|
|||||||
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
domain Domain? @relation(fields: [domainId], references: [id], onDelete: SetNull)
|
||||||
ideas Idea[]
|
ideas Idea[]
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@index([workspaceId])
|
@@index([workspaceId])
|
||||||
@@index([workspaceId, status])
|
@@index([workspaceId, status])
|
||||||
@@index([creatorId])
|
@@index([creatorId])
|
||||||
@@ -354,6 +357,7 @@ model ActivityLog {
|
|||||||
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
||||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@index([workspaceId])
|
@@index([workspaceId])
|
||||||
@@index([workspaceId, createdAt])
|
@@index([workspaceId, createdAt])
|
||||||
@@index([entityType, entityId])
|
@@index([entityType, entityId])
|
||||||
@@ -408,6 +412,7 @@ model Domain {
|
|||||||
projects Project[]
|
projects Project[]
|
||||||
ideas Idea[]
|
ideas Idea[]
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@unique([workspaceId, slug])
|
@@unique([workspaceId, slug])
|
||||||
@@index([workspaceId])
|
@@index([workspaceId])
|
||||||
@@map("domains")
|
@@map("domains")
|
||||||
@@ -447,6 +452,7 @@ model Idea {
|
|||||||
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
|
project Project? @relation(fields: [projectId], references: [id], onDelete: SetNull)
|
||||||
creator User @relation("IdeaCreator", fields: [creatorId], references: [id], onDelete: Cascade)
|
creator User @relation("IdeaCreator", fields: [creatorId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@index([workspaceId])
|
@@index([workspaceId])
|
||||||
@@index([workspaceId, status])
|
@@index([workspaceId, status])
|
||||||
@@index([domainId])
|
@@index([domainId])
|
||||||
@@ -612,6 +618,7 @@ model UserLayout {
|
|||||||
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
||||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
|
@@unique([id, workspaceId])
|
||||||
@@unique([workspaceId, userId, name])
|
@@unique([workspaceId, userId, name])
|
||||||
@@index([userId])
|
@@index([userId])
|
||||||
@@map("user_layouts")
|
@@map("user_layouts")
|
||||||
|
|||||||
Reference in New Issue
Block a user