generator launcherClient { provider = "prisma-client-js" output = "../node_modules/@prisma/launcher-client" binaryTargets = ["native", "debian-openssl-3.0.x", "debian-openssl-1.1.x"] } datasource db { provider = "postgresql" url = env("LAUNCHER_DATABASE_URL") } model LauncherNotice { id String @id @default(uuid()) @db.Uuid appKey String @default("Launcher") @map("app_key") title String body String linkUrl String? @map("link_url") isActive Boolean @default(true) @map("is_active") startsAt DateTime? @map("starts_at") @db.Timestamptz(3) endsAt DateTime? @map("ends_at") @db.Timestamptz(3) priority Int @default(0) createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3) @@index([appKey, isActive, priority]) @@map("launcher_notices") } model ProvisionedDevice { id String @id @default(uuid()) @db.Uuid accountEmail String @map("account_email") authUserId String? @map("auth_user_id") @db.Uuid hostname String tailscaleHostname String @map("tailscale_hostname") sshUser String? @map("ssh_user") workspaceRoot String? @map("workspace_root") usageType String @default("personal") @map("usage_type") os String? arch String? kernel String? distro String? device Json? installedAt DateTime @default(now()) @map("installed_at") @db.Timestamptz(3) lastProvisionedAt DateTime @default(now()) @map("last_provisioned_at") @db.Timestamptz(3) createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3) @@unique([accountEmail, tailscaleHostname]) @@index([accountEmail]) @@index([tailscaleHostname]) @@map("provisioned_devices") } model LauncherSshKey { id String @id @default(uuid()) @db.Uuid accountEmail String @map("account_email") authUserId String? @map("auth_user_id") @db.Uuid publicKey String @map("public_key") publicKeyHash String @map("public_key_hash") keyType String? @map("key_type") label String? lastProvisionedAt DateTime @default(now()) @map("last_provisioned_at") @db.Timestamptz(3) createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3) @@unique([accountEmail, publicKeyHash]) @@index([accountEmail]) @@map("launcher_ssh_keys") } model LauncherCommonSetting { id String @id @default(uuid()) @db.Uuid key String @unique name String type String value String description String? isActive Boolean @default(true) @map("is_active") isSecret Boolean @default(false) @map("is_secret") createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3) @@index([type, isActive]) @@map("launcher_common_settings") }