generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = env("DATABASE_URL") } model User { id String @id @default(cuid()) email String @unique name String? passwordHash String role String @default("USER") createdAt DateTime @default(now()) events Event[] @relation("EventCreator") views UserView[] accounts Account[] sessions Session[] } model Event { id String @id @default(cuid()) title String description String? location String? startAt DateTime endAt DateTime status String @default("PENDING") createdAt DateTime @default(now()) createdById String createdBy User @relation("EventCreator", fields: [createdById], references: [id]) viewItems UserViewItem[] } model UserView { id String @id @default(cuid()) name String token String @unique userId String user User @relation(fields: [userId], references: [id]) items UserViewItem[] createdAt DateTime @default(now()) } model UserViewItem { id String @id @default(cuid()) viewId String eventId String view UserView @relation(fields: [viewId], references: [id]) event Event @relation(fields: [eventId], references: [id]) @@unique([viewId, eventId]) } model Account { id String @id @default(cuid()) userId String type String provider String providerAccountId String refresh_token String? access_token String? expires_at Int? token_type String? scope String? id_token String? session_state String? user User @relation(fields: [userId], references: [id], onDelete: Cascade) @@unique([provider, providerAccountId]) } model Session { id String @id @default(cuid()) sessionToken String @unique userId String expires DateTime user User @relation(fields: [userId], references: [id], onDelete: Cascade) } model VerificationToken { identifier String token String @unique expires DateTime @@unique([identifier, token]) }