datasource db { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" } model User { id Int @id @default(autoincrement()) pubkey String @unique username String? @unique avatar String? purchased Purchase[] courses Course[] // Relation field added for courses created by the user resources Resource[] // Relation field added for resources created by the user role Role? @relation(fields: [roleId], references: [id]) roleId Int? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Role { id Int @id @default(autoincrement()) subscribed Boolean @default(false) users User[] } model Purchase { id Int @id @default(autoincrement()) user User @relation(fields: [userId], references: [id]) userId Int course Course? @relation(fields: [courseId], references: [id]) courseId Int? resource Resource? @relation(fields: [resourceId], references: [id]) resourceId Int? amountPaid Int // in satoshis createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Course { id Int @id @default(autoincrement()) userId Int // Field added to link a course to a user user User @relation(fields: [userId], references: [id]) // Relation setup for user price Int @default(0) resources Resource[] purchases Purchase[] noteId String? @unique createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Resource { id Int @id @default(autoincrement()) userId Int // Field added to link a resource to a user user User @relation(fields: [userId], references: [id]) // Relation setup for user course Course? @relation(fields: [courseId], references: [id]) courseId Int? price Int @default(0) purchases Purchase[] noteId String? @unique createdAt DateTime @default(now()) updatedAt DateTime @updatedAt }