// 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            String    @id @default(cuid())
  userName      String    @unique
  name          String?
  email         String?   @unique
  emailVerified DateTime?
  image         String?
  Post          Post[]
  Comment       Comment[]
  Like          Like[]
}

model Post {
  id        String   @id @default(dbgenerated()) @db.Uuid
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  content   String
  likeCount Int?    @default(0)
  gameId    String?

  published Boolean   @default(false)
  userId    String
  user      User      @relation(fields: [userId], references: [id])
  Comment   Comment[]
  Like      Like[]
}

model Like {
  id     String @id @default(dbgenerated()) @db.Uuid
  postId String
  userId String
  post   Post   @relation(fields: [postId], references: [id], onDelete: Cascade)
  user   User   @relation(fields: [userId], references: [id], onDelete: Cascade)
}

model Comment {
  id        String   @id @default(cuid())
  message   String
  postId    String
  userId    String
  createdAt DateTime @default(now())
  post      Post     @relation(fields: [postId], references: [id], onDelete: Cascade)
  user      User     @relation(fields: [userId], references: [id])
}