Loading...
Loading...
Design Prisma 7 + PostgreSQL schemas with correct relations, constraints, indexes, naming conventions, and migration-safe patterns.
npx skill4agent add madsnyl/t3-template prisma-database-modellingschema.prismaid String @id @default(cuid())id BigInt @id @default(autoincrement())createdAt DateTime @default(now())updatedAt DateTime @updatedAtdeletedAt DateTime?(deletedAt)PascalCasecamelCasesnake_case@map@@map@@index@@unique@unique@@uniqueonDelete: CascadeRestrictNoActionSetNullreferences/PRISMA7_CORE_REFERENCES.mdtenantId, createdAtstatus, createdAt DESC@@index([status, createdAt])orderBy(tenantId, slug)(workspaceId, email)@map@@mapmodel Workspace {
id String @id @default(cuid())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
projects Project[]
}
model Project {
id String @id @default(cuid())
workspaceId String
name String
slug String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
@@unique([workspaceId, slug])
@@index([workspaceId, createdAt])
@@index([workspaceId])
}model User {
id String @id @default(cuid())
email String @unique
projectMembers ProjectMember[]
}
model Project {
id String @id @default(cuid())
name String
projectMembers ProjectMember[]
}
model ProjectMember {
projectId String
userId String
role String
joinedAt DateTime @default(now())
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@id([projectId, userId])
@@index([userId])
}