Files
wled-controller/backend/prisma/schema.prisma
2025-12-10 18:07:21 +00:00

58 lines
1.4 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model Device {
id String @id @default(uuid())
name String
ipAddress String
port Int @default(80)
enabled Boolean @default(true)
lastSeenAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
groups GroupDevice[]
}
model Group {
id String @id @default(uuid())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
devices GroupDevice[]
schedules Schedule[]
}
model GroupDevice {
groupId String
deviceId String
group Group @relation(fields: [groupId], references: [id], onDelete: Cascade)
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
@@id([groupId, deviceId])
}
model Schedule {
id String @id @default(uuid())
name String
groupId String
type String // 'PRESET' | 'PLAYLIST'
cronExpression String
endCronExpression String? // Optional: turn off lights at this time
timezone String @default("Europe/London")
enabled Boolean @default(true)
actionPayload String // JSON string
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
group Group @relation(fields: [groupId], references: [id])
}