schema.prisma 1.89 KiB
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
userName String? @unique
name String? @default("u ${id}")
email String? @unique
password String
emailVerified DateTime?
image String?
createdAt DateTime @default(now())
Post Post[]
Comment Comment[]
Like Like[]
followers Follows[] @relation("follower")
following Follows[] @relation("following")
}
model Follows {
follower User @relation("following", fields: [followerId], references: [id])
followerId Int
following User @relation("follower", fields: [followingId], references: [id])
followingId Int
createdAt DateTime @default(now())
@@id([followerId, followingId])
}
model Post {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
content String
likeCount Int? @default(0)
gameId Int?
published Boolean @default(false)
userId Int
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
Comment Comment[]
Like Like[]
}
model Like {
id Int @id @default(autoincrement())
postId Int
userId Int
post Post @relation(fields: [postId], references: [id], onDelete: Cascade)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
model Comment {
id Int @id @default(autoincrement())
message String
postId Int
userId Int
createdAt DateTime @default(now())
post Post @relation(fields: [postId], references: [id], onDelete: Cascade)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}