104 lines
3.5 KiB
Plaintext
104 lines
3.5 KiB
Plaintext
![]() |
generator client {
|
||
|
provider = "prisma-client-js"
|
||
|
}
|
||
|
|
||
|
datasource db {
|
||
|
provider = "cockroachdb"
|
||
|
url = env("DATABASE_URL")
|
||
|
}
|
||
|
|
||
|
model account {
|
||
|
id BigInt @id @default(autoincrement()) @map("user_id")
|
||
|
username String @unique @db.String(255)
|
||
|
password String @db.String(60)
|
||
|
isAdmin Boolean @default(false) @map("is_admin")
|
||
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||
|
updatedAt DateTime? @default(now()) @map("updated_at") @db.Timestamptz(6)
|
||
|
accountUuid String @unique @map("account_uuid") @db.Uuid
|
||
|
website website[]
|
||
|
|
||
|
@@index([accountUuid])
|
||
|
}
|
||
|
|
||
|
model event {
|
||
|
id BigInt @id() @default(autoincrement()) @map("event_id")
|
||
|
websiteId BigInt @map("website_id")
|
||
|
sessionId BigInt @map("session_id")
|
||
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||
|
url String @db.String(500)
|
||
|
eventName String @map("event_name") @db.String(50)
|
||
|
eventUuid String @unique @map("event_uuid") @db.Uuid
|
||
|
session session @relation(fields: [sessionId], references: [id])
|
||
|
website website @relation(fields: [websiteId], references: [id])
|
||
|
eventData eventData?
|
||
|
|
||
|
@@index([createdAt])
|
||
|
@@index([sessionId])
|
||
|
@@index([websiteId])
|
||
|
@@index([eventUuid])
|
||
|
}
|
||
|
|
||
|
model eventData {
|
||
|
id BigInt @id @default(autoincrement()) @map("event_data_id")
|
||
|
eventId BigInt @unique @map("event_id")
|
||
|
eventData Json @map("event_data")
|
||
|
event event @relation(fields: [eventId], references: [id])
|
||
|
|
||
|
@@map("event_data")
|
||
|
}
|
||
|
|
||
|
model pageview {
|
||
|
id BigInt @id @default(autoincrement()) @map("view_id")
|
||
|
websiteId BigInt @map("website_id")
|
||
|
sessionId BigInt @map("session_id")
|
||
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||
|
url String @db.String(500)
|
||
|
referrer String? @db.String(500)
|
||
|
session session @relation(fields: [sessionId], references: [id])
|
||
|
website website @relation(fields: [websiteId], references: [id])
|
||
|
|
||
|
@@index([createdAt])
|
||
|
@@index([sessionId])
|
||
|
@@index([websiteId, createdAt])
|
||
|
@@index([websiteId])
|
||
|
@@index([websiteId, sessionId, createdAt])
|
||
|
}
|
||
|
|
||
|
model session {
|
||
|
id BigInt @id @default(autoincrement()) @map("session_id")
|
||
|
sessionUuid String @unique @map("session_uuid") @db.Uuid
|
||
|
websiteId BigInt @map("website_id")
|
||
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||
|
hostname String? @db.String(100)
|
||
|
browser String? @db.String(20)
|
||
|
os String? @db.String(20)
|
||
|
device String? @db.String(20)
|
||
|
screen String? @db.String(11)
|
||
|
language String? @db.String(35)
|
||
|
country String? @db.Char(2)
|
||
|
website website? @relation(fields: [websiteId], references: [id])
|
||
|
events event[]
|
||
|
pageview pageview[]
|
||
|
|
||
|
@@index([createdAt])
|
||
|
@@index([websiteId])
|
||
|
@@index([sessionUuid])
|
||
|
}
|
||
|
|
||
|
model website {
|
||
|
id BigInt @id @default(autoincrement()) @map("website_id")
|
||
|
websiteUuid String @unique @map("website_uuid") @db.Uuid
|
||
|
userId BigInt @map("user_id")
|
||
|
name String @db.String(100)
|
||
|
domain String? @db.String(500)
|
||
|
shareId String? @unique @map("share_id") @db.String(64)
|
||
|
createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6)
|
||
|
account account @relation(fields: [userId], references: [id])
|
||
|
event event[]
|
||
|
pageview pageview[]
|
||
|
session session[]
|
||
|
|
||
|
@@index([userId])
|
||
|
@@index([websiteUuid])
|
||
|
}
|