feat: add monitor schema and add referential actions

This commit is contained in:
moonrailgun 2023-10-04 01:11:40 +08:00
parent e48f8f5fc0
commit 07199f0acc

View File

@ -44,8 +44,8 @@ model WorkspacesOnUsers {
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
updatedAt DateTime? @updatedAt @db.Timestamptz(6) updatedAt DateTime? @updatedAt @db.Timestamptz(6)
user User @relation(fields: [userId], references: [id]) user User @relation(fields: [userId], references: [id], onUpdate: Cascade, onDelete: Cascade)
workspace Workspace @relation(fields: [workspaceId], references: [id]) workspace Workspace @relation(fields: [workspaceId], references: [id], onUpdate: Cascade, onDelete: Cascade)
@@id([userId, workspaceId]) @@id([userId, workspaceId])
@@index([userId]) @@index([userId])
@ -58,12 +58,14 @@ model Website {
domain String? @db.VarChar(500) domain String? @db.VarChar(500)
shareId String? @unique @db.VarChar(50) shareId String? @unique @db.VarChar(50)
resetAt DateTime? @db.Timestamptz(6) resetAt DateTime? @db.Timestamptz(6)
workspace Workspace @relation(fields: [workspaceId], references: [id])
workspaceId String @db.Uuid workspaceId String @db.Uuid
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
updatedAt DateTime? @updatedAt @db.Timestamptz(6) updatedAt DateTime? @updatedAt @db.Timestamptz(6)
deletedAt DateTime? @db.Timestamptz(6) deletedAt DateTime? @db.Timestamptz(6)
workspace Workspace @relation(fields: [workspaceId], references: [id], onUpdate: Cascade, onDelete: Cascade)
sessions WebsiteSession[]
eventData WebsiteEventData[] eventData WebsiteEventData[]
sessionData WebsiteSessionData[] sessionData WebsiteSessionData[]
@ -87,6 +89,8 @@ model WebsiteSession {
city String? @db.VarChar(50) city String? @db.VarChar(50)
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
website Website @relation(fields: [websiteId], references: [id], onUpdate: Cascade, onDelete: Cascade)
websiteEvent WebsiteEvent[] websiteEvent WebsiteEvent[]
sessionData WebsiteSessionData[] sessionData WebsiteSessionData[]
@ -119,7 +123,7 @@ model WebsiteEvent {
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
eventData WebsiteEventData[] eventData WebsiteEventData[]
session WebsiteSession @relation(fields: [sessionId], references: [id]) session WebsiteSession @relation(fields: [sessionId], references: [id],onUpdate: Cascade, onDelete: Cascade)
@@index([createdAt]) @@index([createdAt])
@@index([sessionId]) @@index([sessionId])
@ -144,8 +148,8 @@ model WebsiteEventData {
dataType Int @db.Integer dataType Int @db.Integer
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
website Website @relation(fields: [websiteId], references: [id]) website Website @relation(fields: [websiteId], references: [id], onUpdate: Cascade, onDelete: Cascade)
websiteEvent WebsiteEvent @relation(fields: [websiteEventId], references: [id]) websiteEvent WebsiteEvent @relation(fields: [websiteEventId], references: [id], onUpdate: Cascade, onDelete: Cascade)
@@index([createdAt]) @@index([createdAt])
@@index([websiteId]) @@index([websiteId])
@ -165,8 +169,8 @@ model WebsiteSessionData {
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
deletedAt DateTime? @default(now()) @db.Timestamptz(6) deletedAt DateTime? @default(now()) @db.Timestamptz(6)
website Website @relation(fields: [websiteId], references: [id]) website Website @relation(fields: [websiteId], references: [id], onUpdate: Cascade, onDelete: Cascade)
session WebsiteSession @relation(fields: [sessionId], references: [id]) session WebsiteSession @relation(fields: [sessionId], references: [id], onUpdate: Cascade, onDelete: Cascade)
@@index([createdAt]) @@index([createdAt])
@@index([websiteId]) @@index([websiteId])
@ -200,7 +204,7 @@ model TelemetryEvent {
urlPath String @db.VarChar(500) urlPath String @db.VarChar(500)
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
session TelemetrySession @relation(fields: [sessionId], references: [id]) session TelemetrySession @relation(fields: [sessionId], references: [id], onUpdate: Cascade, onDelete: Cascade)
@@index([createdAt]) @@index([createdAt])
@@index([sessionId]) @@index([sessionId])
@ -216,7 +220,7 @@ model Notification {
payload Json @db.Json payload Json @db.Json
createdAt DateTime? @default(now()) @db.Timestamptz(6) createdAt DateTime? @default(now()) @db.Timestamptz(6)
workspace Workspace @relation(fields: [workspaceId], references: [id]) workspace Workspace @relation(fields: [workspaceId], references: [id], onUpdate: Cascade, onDelete: Cascade)
monitors Monitor[] monitors Monitor[]
@ -233,8 +237,32 @@ model Monitor {
maxRetry Int @default(0) @db.Integer maxRetry Int @default(0) @db.Integer
retryInterval Int @default(0) @db.Integer retryInterval Int @default(0) @db.Integer
payload Json @db.Json payload Json @db.Json
createdAt DateTime? @default(now()) @db.Timestamptz(6)
workspace Workspace @relation(fields: [workspaceId], references: [id]) workspace Workspace @relation(fields: [workspaceId], references: [id])
notifications Notification[] notifications Notification[]
events MonitorEvent[]
datas MonitorData[]
@@index([workspaceId])
}
model MonitorEvent {
id String @id @default(uuid()) @db.Uuid
message String @db.VarChar(500)
monitorId String @db.Uuid
type String @db.VarChar(100) // Up or Down
createdAt DateTime? @default(now()) @db.Timestamptz(6)
monitor Monitor @relation(fields: [monitorId], references: [id], onUpdate: Cascade, onDelete: Cascade)
}
model MonitorData {
id String @id @default(uuid()) @db.Uuid
monitorId String @db.Uuid
value Int @default(0) @db.Integer // -1 means error
createdAt DateTime? @default(now()) @db.Timestamptz(6)
monitor Monitor @relation(fields: [monitorId], references: [id], onUpdate: Cascade, onDelete: Cascade)
} }