-
Notifications
You must be signed in to change notification settings - Fork 187
Expand file tree
/
Copy pathschema.prisma
More file actions
137 lines (122 loc) · 6.76 KB
/
schema.prisma
File metadata and controls
137 lines (122 loc) · 6.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// This file is automatically generated by Keystone, do not modify it manually.
// Modify your Keystone config when you want to change this.
datasource postgresql {
url = env("DATABASE_URL")
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
provider = "postgresql"
}
generator client {
provider = "prisma-client-js"
}
model User {
id String @id @default(cuid())
name String @default("")
email String @unique @default("")
password String
role Role? @relation("User_role", fields: [roleId], references: [id])
roleId String? @map("role")
passwordResetToken String?
passwordResetIssuedAt DateTime?
passwordResetRedeemedAt DateTime?
@@index([roleId])
}
model Role {
id String @id @default(cuid())
name String @default("")
canSeeOtherPeople Boolean @default(false)
canEditOtherPeople Boolean @default(false)
canManagePeople Boolean @default(false)
canManageRoles Boolean @default(false)
canAccessDashboard Boolean @default(false)
canManageApplications Boolean @default(false)
canManageCategories Boolean @default(false)
canManageCapabilities Boolean @default(false)
assignedTo User[] @relation("User_role")
}
model Category {
id String @id @default(cuid())
name String @default("")
slug String @unique @default("")
description String @default("")
icon String @default("")
color String @default("")
createdAt DateTime? @default(now())
proprietaryApplications ProprietaryApplication[] @relation("ProprietaryApplication_category")
}
model ProprietaryApplication {
id String @id @default(cuid())
name String @default("")
slug String @unique @default("")
description String @default("")
websiteUrl String @default("")
simpleIconSlug String @default("")
simpleIconColor String @default("")
category Category? @relation("ProprietaryApplication_category", fields: [categoryId], references: [id])
categoryId String? @map("category")
capabilities ProprietaryCapability[] @relation("ProprietaryCapability_proprietaryApplication")
openSourceAlternatives OpenSourceApplication[] @relation("OpenSourceApplication_primaryAlternativeTo")
createdAt DateTime? @default(now())
updatedAt DateTime? @default(now()) @updatedAt
@@index([categoryId])
}
model OpenSourceApplication {
id String @id @default(cuid())
name String @default("")
slug String @unique @default("")
description String @default("")
primaryAlternativeTo ProprietaryApplication? @relation("OpenSourceApplication_primaryAlternativeTo", fields: [primaryAlternativeToId], references: [id])
primaryAlternativeToId String? @map("primaryAlternativeTo")
repositoryUrl String @default("")
websiteUrl String @default("")
simpleIconSlug String @default("")
simpleIconColor String @default("")
license String @default("")
githubStars Int?
githubForks Int?
githubIssues Int?
githubLastCommit DateTime?
status String? @default("active")
capabilities OpenSourceCapability[] @relation("OpenSourceCapability_openSourceApplication")
createdAt DateTime? @default(now())
updatedAt DateTime? @default(now()) @updatedAt
@@index([primaryAlternativeToId])
}
model Capability {
id String @id @default(cuid())
name String @default("")
slug String @unique @default("")
description String @default("")
category String?
complexity String? @default("intermediate")
proprietaryApplications ProprietaryCapability[] @relation("ProprietaryCapability_capability")
openSourceApplications OpenSourceCapability[] @relation("OpenSourceCapability_capability")
createdAt DateTime? @default(now())
updatedAt DateTime? @default(now()) @updatedAt
}
model ProprietaryCapability {
id String @id @default(cuid())
proprietaryApplication ProprietaryApplication? @relation("ProprietaryCapability_proprietaryApplication", fields: [proprietaryApplicationId], references: [id])
proprietaryApplicationId String? @map("proprietaryApplication")
capability Capability? @relation("ProprietaryCapability_capability", fields: [capabilityId], references: [id])
capabilityId String? @map("capability")
isActive Boolean @default(true)
createdAt DateTime? @default(now())
@@index([proprietaryApplicationId])
@@index([capabilityId])
}
model OpenSourceCapability {
id String @id @default(cuid())
openSourceApplication OpenSourceApplication? @relation("OpenSourceCapability_openSourceApplication", fields: [openSourceApplicationId], references: [id])
openSourceApplicationId String? @map("openSourceApplication")
capability Capability? @relation("OpenSourceCapability_capability", fields: [capabilityId], references: [id])
capabilityId String? @map("capability")
isActive Boolean @default(true)
implementationNotes String @default("")
githubPath String @default("")
documentationUrl String @default("")
implementationComplexity String? @default("intermediate")
createdAt DateTime? @default(now())
updatedAt DateTime? @default(now()) @updatedAt
@@index([openSourceApplicationId])
@@index([capabilityId])
}