// 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 @unique @default(uuid()) username String @unique password String role Role @default(USER) group String? blog_posts BlogPost[] profile_page ProfilePage? @@index([username, role]) } model BlogPost { id String @id @unique @default(uuid()) title String? description String? content String? thumbnail String? images String[] visibility PostStatus @default(UNLISTED) owner User? @relation(fields: [ownerid], references: [id], onDelete: Cascade) ownerid String? // Tags tags String[] // Dates publish_date DateTime? created_date DateTime @default(now()) } model ProfilePage { id String @id @unique @default(uuid()) content String? images String[] visibility PostStatus @default(UNLISTED) owner User @relation(fields: [ownerid], references: [id], onDelete: Cascade) ownerid String @unique } model Setting { id String @unique value Json } model Group { id String @unique permissions String[] } enum Role { LOCKED USER ADMIN } enum PostStatus { UNLISTED PUBLISHED }