TimeWeaver is a tool to help manage events across multiple timelines. Events that are approaching the current time are intensified with borders and colors. Countdown timers inform users how much time they have until the next item on the agenda.
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
email String @unique
password String
profile Profile?
timelines Timeline[]
timelineEvents TimelineEvent[]
}
model Profile {
id String @id @default(auto()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
firstName String?
lastName String?
bio String?
user User @relation(fields: [userId], references: [id])
userId String @unique @db.ObjectId
}
model Timeline {
id String @id @default(auto()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
createdBy User @relation(fields: [createdById], references: [id])
createdById String @db.ObjectId
updatedAt DateTime @updatedAt
slug String @unique
name String
description String
events TimelineEvent[] @relation(fields: [eventIds], references: [id])
eventIds String[] @db.ObjectId
start DateTime
end DateTime
}
model TimelineEvent {
id String @id @default(auto()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
createdBy User @relation(fields: [createdById], references: [id])
createdById String @db.ObjectId
updatedAt DateTime @updatedAt
name String
description String
slug String @unique
timelines Timeline[] @relation(fields: [timelineIds], references: [id])
timelineIds String[] @db.ObjectId
start DateTime
end DateTime
}