generator client { provider = "prisma-client-js" binaryTargets = ["native"] } datasource db { provider = "sqlite" url = env("DATABASE_URL") } model Node { id String @id @default(uuid()) label String? implements NodeImplements[] fromNodes Edge[] @relation(name: "fromNode") toNodes Edge[] @relation(name: "toNode") metadata NodeMeta[] } model Interface { id String @id @default(uuid()) implementors NodeImplements[] } model Edge { id String @id @default(uuid()) label String? fromId String fromNode Node @relation(name: "fromNode", fields: [fromId], references: [id]) toId String toNode Node @relation(name: "toNode", fields: [toId], references: [id]) @@unique([fromId, toId]) } model NodeMeta { nodeId String toNode Node @relation(fields: [nodeId], references: [id]) appId String app App @relation(fields: [appId], references: [id]) key String value Bytes @@id([nodeId, appId, key]) } model NodeImplements { nodeId String node Node @relation(fields: [nodeId], references: [id]) interfaceId String interface Interface @relation(fields: [interfaceId], references: [id]) @@id([nodeId, interfaceId]) } model App { id String @id @default(uuid()) localName String @unique title String installed DateTime patterns Patterns[] metaKeys NodeMeta[] } /// Regular expressions table model Patterns { id String @id @default(uuid()) pattern String /// Pattern type, see docs for details type String appId String app App @relation(fields: [appId], references: [id]) functionName String }