@postxl/generator 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/jest.config.js +17 -0
- package/dist/src/generator.js +0 -0
- package/dist/src/generators/indices/dataservice.generator.js +1 -1
- package/dist/src/generators/indices/testdataservice.generator.js +2 -1
- package/dist/src/generators/models/react.generator/context.generator.js +1 -1
- package/dist/src/generators/models/react.generator/modals.generator.js +5 -8
- package/dist/src/generators/models/route.generator.js +1 -1
- package/dist/src/generators/models/seed.generator.d.ts +1 -1
- package/dist/src/generators/models/seed.generator.js +17 -18
- package/dist/src/generators/models/stub.generator.d.ts +1 -1
- package/dist/src/generators/models/stub.generator.js +3 -6
- package/dist/src/generators/models/types.generator.js +3 -6
- package/dist/src/lib/schema/zod.js +2 -5
- package/dist/src/lib/types.d.ts +7 -0
- package/dist/src/lib/types.js +13 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -3
- package/CHANGELOG.md +0 -7
- package/changelog.md +0 -115
- package/jest.config.ts +0 -18
- package/tests/attributes.test.ts +0 -91
- package/tests/file.test.ts +0 -32
- package/tests/schemas/la/la.prisma +0 -862
- package/tests/schemas/mca/mca.prisma +0 -528
- package/tests/utils/random.ts +0 -11
- package/tests/vfs.test.ts +0 -92
|
@@ -1,862 +0,0 @@
|
|
|
1
|
-
datasource db {
|
|
2
|
-
provider = "postgres"
|
|
3
|
-
url = env("DATABASE_CONNECTION")
|
|
4
|
-
schemas = ["Benchmark", "Cache", "Configuration", "Participation", "User"]
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
generator client {
|
|
8
|
-
provider = "prisma-client-js"
|
|
9
|
-
previewFeatures = ["multiSchema"]
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
generator pxl {
|
|
13
|
-
provider = "node ./dist/src/generator.js"
|
|
14
|
-
|
|
15
|
-
project = "la"
|
|
16
|
-
|
|
17
|
-
pathToTypes = "./tests/schemas/la/generated/backend/libs/types/src/"
|
|
18
|
-
pathToDataLib = "./tests/schemas/la/generated/backend/libs/data/src/"
|
|
19
|
-
trpcRoutesFolder = "./tests/schemas/la/generated/backend/libs/trpc/src/routes/"
|
|
20
|
-
pathToSeedLib = "./tests/schemas/la/generated/backend/libs/seed/src/"
|
|
21
|
-
|
|
22
|
-
reactFolderOutput = "./tests/schemas/la/generated/web/src/components/"
|
|
23
|
-
|
|
24
|
-
randomSeed = 1
|
|
25
|
-
force = false
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/// @@Ignore("Used by Db Service, shall not be exposed!")
|
|
29
|
-
model Config {
|
|
30
|
-
id Boolean @id @default(true)
|
|
31
|
-
isTest Boolean @default(false)
|
|
32
|
-
|
|
33
|
-
@@schema("Configuration")
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
model Country {
|
|
37
|
-
id Int @id() @default(autoincrement())
|
|
38
|
-
///@@Examples(["United States", "Canada", "Germany"])
|
|
39
|
-
name String
|
|
40
|
-
|
|
41
|
-
///@@Description("Country code based on ISO 3166-1 alpha-2")
|
|
42
|
-
///@@Examples(["US", "CA", "DE"])
|
|
43
|
-
code String
|
|
44
|
-
|
|
45
|
-
participants Participant[] @relation("Participant_FK_CountryId_Country_Country")
|
|
46
|
-
|
|
47
|
-
@@schema("Configuration")
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
///@@Description("A Benchmark is a collection of Surveys to the same topic (e.g. `Life & Annuities`, `Workforce Benefits`) across years and coutnries.")
|
|
51
|
-
model Benchmark {
|
|
52
|
-
id Int @id() @default(autoincrement())
|
|
53
|
-
///@@Examples(["Life & Annuities", "Workforce Benefits"])
|
|
54
|
-
name String
|
|
55
|
-
surveys Survey[]
|
|
56
|
-
|
|
57
|
-
@@schema("Configuration")
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
model Survey {
|
|
61
|
-
id Int @id() @default(autoincrement())
|
|
62
|
-
|
|
63
|
-
benchmarkId Int
|
|
64
|
-
benchmark Benchmark @relation(fields: [benchmarkId], references: [id], onUpdate: NoAction, map: "Survey_FK_Benchmark_Id")
|
|
65
|
-
|
|
66
|
-
///@@Examples(["Life & Annuities US 2021", "Workforce Benefits Canada 2022"])
|
|
67
|
-
name String
|
|
68
|
-
|
|
69
|
-
///@@Examples([2021, 2022])
|
|
70
|
-
year Int
|
|
71
|
-
|
|
72
|
-
participants Participant[] @relation("Participant_FK_SurveyId_Survey_Id")
|
|
73
|
-
|
|
74
|
-
productGroups ProductGroup[] @relation("ProductGroup_FK_SurveyId_Survey_Id")
|
|
75
|
-
|
|
76
|
-
taxonomyGroups TaxonomyGroup[] @relation("TaxonomyGroup_FK_SurveyId_Survey_Id")
|
|
77
|
-
// ProductGroupResult ProductGroupResult[]
|
|
78
|
-
// ProductSplit ProductSplit[]
|
|
79
|
-
// ProductSplitGroup ProductSplitGroup[]
|
|
80
|
-
// Question Question[]
|
|
81
|
-
// SurveyQuestion SurveyQuestion[]
|
|
82
|
-
|
|
83
|
-
dimensions Dimension[] @relation("Dimension_FK_SurveyId_Survey_Id")
|
|
84
|
-
|
|
85
|
-
@@schema("Configuration")
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
model Company {
|
|
89
|
-
id Int @id() @default(autoincrement())
|
|
90
|
-
|
|
91
|
-
///@@Examples(["Allianz", "NationWide", "Liberty Mutual"])
|
|
92
|
-
name String
|
|
93
|
-
|
|
94
|
-
participants Participant[] @relation("Participant_FK_CompanyId_Company_Id")
|
|
95
|
-
|
|
96
|
-
@@schema("Participation")
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
///@@Description("A participant is a company (or a product-group thereof), that takes part in a survey.")
|
|
100
|
-
model Participant {
|
|
101
|
-
id Int @id() @default(autoincrement())
|
|
102
|
-
|
|
103
|
-
///@@Examples(["Allianz Life US 2021", "NationWide Workforce Canada 2022"])
|
|
104
|
-
name String
|
|
105
|
-
|
|
106
|
-
countryId Int
|
|
107
|
-
country Country @relation("Participant_FK_CountryId_Country_Country", fields: [countryId], references: [id], onUpdate: NoAction)
|
|
108
|
-
|
|
109
|
-
surveyId Int
|
|
110
|
-
survey Survey @relation("Participant_FK_SurveyId_Survey_Id", fields: [surveyId], references: [id], onUpdate: NoAction)
|
|
111
|
-
|
|
112
|
-
companyId Int
|
|
113
|
-
company Company @relation("Participant_FK_CompanyId_Company_Id", fields: [companyId], references: [id], onUpdate: NoAction)
|
|
114
|
-
|
|
115
|
-
///@@Description("The participant can be linked to a product group (e.g. Life, Annuities, Other) of a survey.")
|
|
116
|
-
productGroupId Int?
|
|
117
|
-
productGroup ProductGroup? @relation("Participant_FK_ProductGroupId_ProductGroup_Id", fields: [productGroupId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "Participant_FK_ProductGroup_ProductGroupId")
|
|
118
|
-
|
|
119
|
-
participationStatus ParticipationStatus
|
|
120
|
-
|
|
121
|
-
///@@Description("The peer groups defined for this participant.")
|
|
122
|
-
peerGroups PeerGroup[]
|
|
123
|
-
|
|
124
|
-
///@@Description("The peer groups that this participant is part of, i.e. where its metrics are included in the group statistics.")
|
|
125
|
-
peerGroupParticipant PeerGroupParticipant[] @relation("PeerGroupParticipant_FK_ParticipantId_Participant_Id")
|
|
126
|
-
|
|
127
|
-
///@@Description("Explicit peers are other participants whose metrics are shown non-disguised/without aggregation. This should only be used for participants of the same company/group.")
|
|
128
|
-
explicitPeers ExplicitPeerGroup[] @relation("ExplicitPeerGroup_FK_ParticipantId_Participant_Id")
|
|
129
|
-
///@@Description("The explicit peer groups that this participant is part of, i.e. where its metrics areexplicitly/non-disguised available to other participants.")
|
|
130
|
-
explicitPeerToOtherParticipants ExplicitPeerGroup[] @relation("ExplicitPeerGroup_FK_PeerId_Participant_Id")
|
|
131
|
-
|
|
132
|
-
// latestDataImportId Int?
|
|
133
|
-
// dataImport_DataImport_ParticipantIdToParticipant DataImport[] @relation("DataImport_ParticipantIdToParticipant")
|
|
134
|
-
// metricOutlier MetricOutlier[]
|
|
135
|
-
// dataImport_Participant_LatestDataImportIdToDataImport DataImport? @relation("Participant_LatestDataImportIdToDataImport", fields: [latestDataImportId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "Participant_FK_DataImport_LatestDataImportId")
|
|
136
|
-
// participantChartSetting ParticipantChartSetting[]
|
|
137
|
-
|
|
138
|
-
@@schema("Participation")
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
enum ParticipationStatus {
|
|
142
|
-
Contacted
|
|
143
|
-
ParticipationConfirmed
|
|
144
|
-
ParticipationDeclined
|
|
145
|
-
SurveyPopulated
|
|
146
|
-
SurveyResent
|
|
147
|
-
SurveyCompleted
|
|
148
|
-
AnalysesCompleted
|
|
149
|
-
|
|
150
|
-
@@schema("Participation")
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
///@@Description("Larger benchmarks/survey (e.g. L&A) can have multiple product groups (e.g. Life, Annuities, Other). Smaller benchmarks/surveys (e.g. Workforce Benefits) have only one product group. A prodcut group is linked a a taxonomy.")
|
|
154
|
-
model ProductGroup {
|
|
155
|
-
id Int @id() @default(autoincrement())
|
|
156
|
-
|
|
157
|
-
///@@Description("The survey this product group belongs to.")
|
|
158
|
-
surveyId Int
|
|
159
|
-
survey Survey @relation("ProductGroup_FK_SurveyId_Survey_Id", fields: [surveyId], references: [id], onUpdate: NoAction)
|
|
160
|
-
|
|
161
|
-
///@@Examples("Life", "Annuities", "Accident & Health")
|
|
162
|
-
name String
|
|
163
|
-
|
|
164
|
-
///@@Description("Short name for the product group, for use in dense charts/tables.")
|
|
165
|
-
///@@Examples("Life", "Ann.", "A&H")
|
|
166
|
-
shortName String
|
|
167
|
-
|
|
168
|
-
///@@Description("Participants belonging to this product group.")
|
|
169
|
-
participants Participant[] @relation("Participant_FK_ProductGroupId_ProductGroup_Id")
|
|
170
|
-
// productGroupResult ProductGroupResult[]
|
|
171
|
-
|
|
172
|
-
@@schema("Configuration")
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
///@@Description("A peer group is a group of participants that are compared to each other.")
|
|
176
|
-
model PeerGroup {
|
|
177
|
-
id Int @id() @default(autoincrement())
|
|
178
|
-
|
|
179
|
-
///@@Description("The participant that this peer group belongs to.")
|
|
180
|
-
participantId Int
|
|
181
|
-
participant Participant @relation(fields: [participantId], references: [id], onUpdate: NoAction, map: "PeerGroup_FK_Participant_Id")
|
|
182
|
-
|
|
183
|
-
///@@Examples("Allianz Life Peers 2021", "Nationwide High-performering Peers 2022")
|
|
184
|
-
name String
|
|
185
|
-
|
|
186
|
-
///@@Description("In case a participant has multiple peer groups, this provide the priority order of the peer groups for any result presentations.")
|
|
187
|
-
order Int?
|
|
188
|
-
|
|
189
|
-
///@@Description("The participants that are part of this peer group.")
|
|
190
|
-
peerGroupParticipants PeerGroupParticipant[] @relation("PeerGroupParticipant_FK_PeerGroupId_PeerGroup_Id")
|
|
191
|
-
|
|
192
|
-
// peerGroupResult PeerGroupResult[]
|
|
193
|
-
|
|
194
|
-
@@schema("Participation")
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
///@@Description("Linking participants to peer groups.")
|
|
198
|
-
model PeerGroupParticipant {
|
|
199
|
-
id Int @id() @default(autoincrement())
|
|
200
|
-
|
|
201
|
-
name String
|
|
202
|
-
|
|
203
|
-
peerGroupId Int
|
|
204
|
-
peerGroup PeerGroup @relation("PeerGroupParticipant_FK_PeerGroupId_PeerGroup_Id", fields: [peerGroupId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "PeerGroupParticipant_FK_PeerGroup_Id")
|
|
205
|
-
participantId Int
|
|
206
|
-
participant Participant @relation("PeerGroupParticipant_FK_ParticipantId_Participant_Id", fields: [participantId], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "PeerGroupParticipant_FK_Participant_Id")
|
|
207
|
-
|
|
208
|
-
@@schema("Participation")
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
model ExplicitPeerGroup {
|
|
212
|
-
id Int @id() @default(autoincrement())
|
|
213
|
-
|
|
214
|
-
///@@Examples("Allianz previous years", "Allianz Life vs Annuities")
|
|
215
|
-
name String
|
|
216
|
-
|
|
217
|
-
///@@Description("The participant that this peer group belongs to.")
|
|
218
|
-
participantId Int
|
|
219
|
-
participant Participant @relation("ExplicitPeerGroup_FK_ParticipantId_Participant_Id", fields: [participantId], references: [id], onUpdate: NoAction)
|
|
220
|
-
|
|
221
|
-
///@@Description("The participant that is part of this explicit peer group.")
|
|
222
|
-
peerId Int
|
|
223
|
-
peer Participant @relation("ExplicitPeerGroup_FK_PeerId_Participant_Id", fields: [peerId], references: [id])
|
|
224
|
-
|
|
225
|
-
@@schema("Participation")
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
///@@Description("A dimension is a root taxonomy that is assigned to a survey.\n See `Taxonomy` for more information.")
|
|
229
|
-
model Dimension {
|
|
230
|
-
id Int @id() @default(autoincrement())
|
|
231
|
-
|
|
232
|
-
///@@Description("The survey this dimension belongs to.")
|
|
233
|
-
surveyId Int
|
|
234
|
-
survey Survey @relation("Dimension_FK_SurveyId_Survey_Id", fields: [surveyId], references: [id], onUpdate: NoAction)
|
|
235
|
-
|
|
236
|
-
///@@Description("The name of the dimension.")
|
|
237
|
-
name String
|
|
238
|
-
|
|
239
|
-
///@@Description("The root taxonomy of the dimension, e.g. `Product` for the `Product` dimension.")
|
|
240
|
-
rootTaxonomyId Int
|
|
241
|
-
rootTaxonomy Taxonomy @relation("Dimension_FK_RootTaxonomyId_Taxonomy_Id", fields: [rootTaxonomyId], references: [id], onUpdate: NoAction)
|
|
242
|
-
|
|
243
|
-
// TaxonomyGroup TaxonomyGroup[]
|
|
244
|
-
|
|
245
|
-
@@schema("Configuration")
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
///@@Description("Taxonomy is a hierarchical structure that represents different dimensions that can be assigned to a value.\nFor instance, a value collected might be\n`Number of external FTEs in call centers that are working on Life Term products`.\nThis example value has three dimensions:\n 1. Indicator (FTEs (F) -> External (FE) )\n 2. Company Function (Operations (O) -> Call Center (OC))\n 3. Product: (Life (L) -> Term Life (LT))\nThe three dimensions are stored as `Dimension` - and each dimension as a root `Taxonomy`, e.g.\n `Product` dimension has `Product` (`P`) taxonomy.\nAs taxonomy is hierarchical, `Product` has multiple child-taxonomies:\n - `Life` (`L`)\n - `Term Life` (`T` -> `LT`)\n - `Whole` (`W` -> `LW`)\n - `Annuities` (`A`)\n\nEach taxonomy has a `levelKey` property - a single letter that must be unique within its siblings.\nConcatenated with the parent taxonomy's `key`, this results in a `key` that is unique\n(within the scope a of a survey), e.g. `PLT` is `Product` -> `Life` -> `Term`\n\nTaxonomies are used to \"taxate/categorize\" the survey questions/collected data points\nand to specify aggregations for metrics. (e.g. `Sum of Indicator FTE across Function Operations`)")
|
|
249
|
-
model Taxonomy {
|
|
250
|
-
id Int @id() @default(autoincrement())
|
|
251
|
-
|
|
252
|
-
///@@Description("The parent taxonomy of this taxonomy.\nCan be blank for root taxonomies.")
|
|
253
|
-
parentId Int?
|
|
254
|
-
parent Taxonomy? @relation("Taxonomy_ParentIdToTaxonomy", fields: [parentId], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "Taxonomy_FK_Taxonomy_ParentId")
|
|
255
|
-
children Taxonomy[] @relation("Taxonomy_ParentIdToTaxonomy")
|
|
256
|
-
|
|
257
|
-
///@@Description("The single character key of the taxonomy item")
|
|
258
|
-
///@@Examples("P", "L", "T", "F", "S")
|
|
259
|
-
levelKey String @db.Char(1)
|
|
260
|
-
|
|
261
|
-
///@@Description("The combined key of `parent.key` + `levelKey`")
|
|
262
|
-
///@@Examples("P", "PL", "PLT", "F", "FS")
|
|
263
|
-
key String
|
|
264
|
-
|
|
265
|
-
///@@Description("The order of the taxonomy within its siblings.")
|
|
266
|
-
levelOrder Int?
|
|
267
|
-
///@@Description("Field stored in DB for ease of processing - to be checked if really needed")
|
|
268
|
-
level Int?
|
|
269
|
-
|
|
270
|
-
///@@Description("The name of the taxonomy.")
|
|
271
|
-
///@@Examples("Product", "Life", "Term Life", "Function", "Sales")
|
|
272
|
-
name String
|
|
273
|
-
|
|
274
|
-
///@@Description("A taxonomy can have multiple synonyms. This can include slightly different spellings, abbreviations used.\nThis is mainly used to map the questions in the survey templates.")
|
|
275
|
-
///@@Examples("", "", "Term Life", "", "Sales & Agents")
|
|
276
|
-
synonyms String[]
|
|
277
|
-
///@@Description("Should contain client-ready documentation for this taxonomy.")
|
|
278
|
-
description String?
|
|
279
|
-
|
|
280
|
-
///@@Description("For team internal comments/notes")
|
|
281
|
-
///@@Examples("Root level", "", "Should we rename this?", "Can this function be removed?", "Split introduced so we can separate between closed book and other.")
|
|
282
|
-
notes String?
|
|
283
|
-
|
|
284
|
-
///@@Description("To discriminate between different types of taxonomies.\nDepending on the type, different properties are relevant.")
|
|
285
|
-
type TaxonomyType
|
|
286
|
-
|
|
287
|
-
///@@Description("Used in the survey mapper: indicates that the rows that collect this taxonomy are further split by channels.")
|
|
288
|
-
///@@Ignore("Probably only used in the survey mapper")
|
|
289
|
-
indicatorHasChannelBreakDown Boolean?
|
|
290
|
-
|
|
291
|
-
///@@Description("Relevant for export in data splitter tool: if set to TRUE, the data will be split based on the product group split,\nelse will be used without modification. E.g. costs will be split by product group, while average time to answer calls will not be split.")
|
|
292
|
-
indicatorSplitByProduct Boolean?
|
|
293
|
-
|
|
294
|
-
///@@Description("Relevant for export in data splitter tool: if `indicatorSplitByProduct` is set to TRUE, this property indicates which product group this indicator belongs to. If set, the indicator will be exported if the product group to be exported matches - else it will be left blank.\n If it is not set, the normal product split logic will apply.\n\nNote: `X` is used as placeholder for all products and is equivalent to NULL.")
|
|
295
|
-
///@@Examples("L", "A", "H", "X", null)
|
|
296
|
-
indicatorExportProductOnly String?
|
|
297
|
-
|
|
298
|
-
///@@Description("Defines the unit of the indicator.")
|
|
299
|
-
///@@Examples("$", "%", "#", "a", "s")
|
|
300
|
-
indicatorUnit String?
|
|
301
|
-
|
|
302
|
-
///@@Description("Indicates if the indicator is a ratio (e.g. 50%) or a number (e.g. 5,000).\n**Note:** If it is a ratio, it cannot be aggregated by summing up the values!")
|
|
303
|
-
indicatorIsRatio Boolean?
|
|
304
|
-
|
|
305
|
-
///@@Description("TBD")
|
|
306
|
-
indicatorOnlyIndicatorAggregation Boolean?
|
|
307
|
-
|
|
308
|
-
///@@Description("The factor by which any value should be adjusted before being aggregated.\nCurrently only used for indicator `Annualized New Business Premium: Single Premium (KPAS)`, where the value provided by the participant covers 10years, so the value is factored with 0.1 before being aggregated. ")
|
|
309
|
-
indicatorAdjustmentFactor Float? @default(1.0)
|
|
310
|
-
|
|
311
|
-
///@@Description("TBD")
|
|
312
|
-
///@@Ignore("Usage unclear")
|
|
313
|
-
functionIsSummation Boolean @default(false)
|
|
314
|
-
|
|
315
|
-
///@@Description("The survey is split into worksheets and sections that broadly correspond to functions.\nThis property reflects this mapping and can be used for reference.")
|
|
316
|
-
///@@Examples("", "", "", "", "3.3.4")
|
|
317
|
-
functionSection String?
|
|
318
|
-
|
|
319
|
-
///@@Description("The dimensions that this taxonomy is the root of.")
|
|
320
|
-
rootTaxonomyToDimensions Dimension[] @relation("Dimension_FK_RootTaxonomyId_Taxonomy_Id")
|
|
321
|
-
|
|
322
|
-
///@@Description("The taxonomy groups that this taxonomy belongs to.")
|
|
323
|
-
taxonomyGroupTaxonomies TaxonomyGroupTaxonomy[] @relation("TaxonomyGroupTaxonomy_FK_TaxonomyId_Taxonomy_Id")
|
|
324
|
-
|
|
325
|
-
///@@Description("All aggregations where this taxonomy is use as the indicator taxonomy.")
|
|
326
|
-
indicatorAggregations Aggregation[] @relation("Aggregation_FK_IndicatorTaxonomyId_Taxonomy_Indicator")
|
|
327
|
-
filterAggregations Aggregation[] @relation("Aggregation_Taxonomy_Filter")
|
|
328
|
-
|
|
329
|
-
// productSplit_ProductSplit_TaxonomyId_FunctionToTaxonomy ProductSplit[] @relation("ProductSplit_TaxonomyId_FunctionToTaxonomy")
|
|
330
|
-
// productSplit_ProductSplit_TaxonomyId_KpiToTaxonomy ProductSplit[] @relation("ProductSplit_TaxonomyId_KpiToTaxonomy")
|
|
331
|
-
// productSplitGroup ProductSplitGroup[]
|
|
332
|
-
// questionTaxonomy QuestionTaxonomy[]
|
|
333
|
-
// surveyQuestionsForAggregation SurveyQuestionsForAggregation[]
|
|
334
|
-
// surveyQuestionsWithTaxonomyAndProductSplit_SurveyQuestionsWithTaxonomyAndProductSplit_ProductTaxonomyIdToTaxonomy SurveyQuestionsWithTaxonomyAndProductSplit[] @relation("SurveyQuestionsWithTaxonomyAndProductSplit_ProductTaxonomyIdToTaxonomy")
|
|
335
|
-
// surveyQuestionsWithTaxonomyAndProductSplit_SurveyQuestionsWithTaxonomyAndProductSplit_QuestionTaxonomyIdToTaxonomy SurveyQuestionsWithTaxonomyAndProductSplit[] @relation("SurveyQuestionsWithTaxonomyAndProductSplit_QuestionTaxonomyIdToTaxonomy")
|
|
336
|
-
@@schema("Configuration")
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
///@@Description("The discriminator for taxonomy")
|
|
340
|
-
enum TaxonomyType {
|
|
341
|
-
indicator
|
|
342
|
-
function
|
|
343
|
-
product
|
|
344
|
-
other
|
|
345
|
-
|
|
346
|
-
@@schema("Configuration")
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
///@@Description("A taxonomy group is a grouping of taxonomies. It is meant to reflect groupings that do not fit directly in the hierarchical tree structure of `Taxonomy`.\nE.g. say different functions all have a \"Support\" function as a child-taxonomy - a \"Support Functions\" taxonomy group could group these and allow to define specific aggregations.")
|
|
350
|
-
model TaxonomyGroup {
|
|
351
|
-
id Int @id() @default(autoincrement())
|
|
352
|
-
|
|
353
|
-
name String
|
|
354
|
-
///@@Description("The survey the taxonomy group belongs to.")
|
|
355
|
-
surveyId Int
|
|
356
|
-
survey Survey @relation("TaxonomyGroup_FK_SurveyId_Survey_Id", fields: [surveyId], references: [id], onUpdate: NoAction)
|
|
357
|
-
|
|
358
|
-
///@@Description("Used for Excel import/export - each taxonomy group is reflected as a separate column in the taxonomy tables.")
|
|
359
|
-
excelCol Int?
|
|
360
|
-
|
|
361
|
-
///@@Description("The taxonomies that belong to this taxonomy group.")
|
|
362
|
-
taxonomyGroupTaxonomies TaxonomyGroupTaxonomy[] @relation("TaxonomyGroupTaxonomy_FK_TaxonomyGroupId_TaxonomyGroup_Id")
|
|
363
|
-
|
|
364
|
-
///@@Description("The aggregations that use this taxonomy group as a filter.")
|
|
365
|
-
aggregations Aggregation[] @relation("Aggregation_FK_FilterTaxonomyGroupId_TaxonomyGroup_Id")
|
|
366
|
-
|
|
367
|
-
@@schema("Configuration")
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
model TaxonomyGroupTaxonomy {
|
|
371
|
-
id Int @id() @default(autoincrement())
|
|
372
|
-
taxonomyGroupId Int
|
|
373
|
-
taxonomyId Int
|
|
374
|
-
|
|
375
|
-
taxonomyGroup TaxonomyGroup @relation("TaxonomyGroupTaxonomy_FK_TaxonomyGroupId_TaxonomyGroup_Id", fields: [taxonomyGroupId], references: [id], onUpdate: NoAction)
|
|
376
|
-
taxonomy Taxonomy @relation("TaxonomyGroupTaxonomy_FK_TaxonomyId_Taxonomy_Id", fields: [taxonomyId], references: [id], onUpdate: NoAction)
|
|
377
|
-
|
|
378
|
-
@@schema("Configuration")
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
///@@Description("A metric is the definition of a KPI. It consists of a numerator and an optional denominator aggregation.\nIt is the basis for the benchmarking: for each participant, all survey metrics are calculated and compared across the peer groups.")
|
|
382
|
-
model Metric {
|
|
383
|
-
id Int @id() @default(autoincrement())
|
|
384
|
-
name String
|
|
385
|
-
|
|
386
|
-
///@@Description("The shorthand key for the metric.\nThe format is `N/D` where `N` is the numerator's aggregation key and `D` is the denominator's aggregation key.\n\nSee `Aggregation` for more information.")
|
|
387
|
-
key String?
|
|
388
|
-
|
|
389
|
-
///@@Description("Metrics are optionally categorized into sections and subsections. This property reflects the section.")
|
|
390
|
-
section String?
|
|
391
|
-
///@@Description("Metrics are optionally categorized into sections and subsections. This property reflects the subsection.")
|
|
392
|
-
subection String?
|
|
393
|
-
///@@Description("Team-internal remarks for the metric.")
|
|
394
|
-
remarks String?
|
|
395
|
-
|
|
396
|
-
///@@Description("The numerator for the metric.")
|
|
397
|
-
numeratorId Int
|
|
398
|
-
numerator Aggregation @relation("Metric_FK_NumeratorId_Aggregation_Id", fields: [numeratorId], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
399
|
-
|
|
400
|
-
///@@Description("The optional denominator for the metric.")
|
|
401
|
-
denominatorId Int?
|
|
402
|
-
denominator Aggregation? @relation("Metric_FK_DenominatorId_Aggregation_Id", fields: [denominatorId], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
403
|
-
|
|
404
|
-
numberFormatId Int
|
|
405
|
-
numberFormat NumberFormat @relation("Metric_FK_NumberFormatId_NumberFormat_Id", fields: [numberFormatId], references: [id], onUpdate: NoAction)
|
|
406
|
-
|
|
407
|
-
///@@Description("TBD")
|
|
408
|
-
multiplicationFactor Float? @default(1.0)
|
|
409
|
-
///@@Description("By default, lower metric values are assumed to be better, e.g. for expenses.\nIf this property is set to `true`, this logic is inverted, e.g. for customer satisfaction.")
|
|
410
|
-
isHigherBetter Boolean @default(false)
|
|
411
|
-
///@@Description("Sets the lower boundary for the metric value.\nIf the metric value is below this boundary, it will be set to the provided minimum value.")
|
|
412
|
-
validationMinimum Float?
|
|
413
|
-
///@@Description("Sets the upper boundary for the metric value.\nIf the metric value is above this boundary, it will be set to the provided maximum value.")
|
|
414
|
-
validationMaximum Float?
|
|
415
|
-
///@@Description("IF the metric cannot be calculated, it will be set to this value.")
|
|
416
|
-
defaultValue Float?
|
|
417
|
-
|
|
418
|
-
///@@Description("During automatic outlier removal, metrics where this field is set to `true` will be ignored.")
|
|
419
|
-
ignoreInOutlierRemoval Boolean @default(false)
|
|
420
|
-
///@@Description("Description for the IDP export.")
|
|
421
|
-
description_IDPMetric String?
|
|
422
|
-
///@@Description("Mapping of old Excel key for reference.")
|
|
423
|
-
oldExcelKey String?
|
|
424
|
-
|
|
425
|
-
///@@Ignore("Should not be required anymore as API takes care of keeping data in sync.")
|
|
426
|
-
// isRefreshRequired Boolean
|
|
427
|
-
|
|
428
|
-
///@@Description("The order of the metric for a specific survey.")
|
|
429
|
-
order Int?
|
|
430
|
-
|
|
431
|
-
// metricOutlier MetricOutlier[]
|
|
432
|
-
// metricResult MetricResult[]
|
|
433
|
-
// peerGroupResult PeerGroupResult[]
|
|
434
|
-
// productGroupResult ProductGroupResult[]
|
|
435
|
-
|
|
436
|
-
@@schema("Configuration")
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
///@@Description("A number format is used to format metrics.")
|
|
440
|
-
model NumberFormat {
|
|
441
|
-
id Int @id() @default(autoincrement())
|
|
442
|
-
name String
|
|
443
|
-
///@@Description("The Excel format string for the number format.")
|
|
444
|
-
excelFormat String
|
|
445
|
-
metric Metric[] @relation("Metric_FK_NumberFormatId_NumberFormat_Id")
|
|
446
|
-
|
|
447
|
-
@@schema("Configuration")
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
///@@Description("An aggregation is a combination of a taxonomy and a filter.\nIt is used to define the numerator and denominator of a metric.")
|
|
451
|
-
model Aggregation {
|
|
452
|
-
id Int @id() @default(autoincrement())
|
|
453
|
-
name String
|
|
454
|
-
|
|
455
|
-
///@@Description("A short-hand key for the aggregation.\nThe format is `I(F)`, where I is the indicator taxonomy key - and `F` describes the (optional) filter. The filter is a comma-separated list of taxonomy keys.\n\nExample: `E(PL,FO)` refers to the `Expenses` (E) filtered by product `Life` (PL) and function `Operations` (FO).")
|
|
456
|
-
key String?
|
|
457
|
-
|
|
458
|
-
///@@Description("Some indicators (e.g. `Expenses`) are split along multiple dimensions (e.g. `Product` and `Channel`).\nIf the values would be aggregated, they would be double-counted. Hence, survey questions for the second split are marked as `AlternativeSplit` and by default are not included in the aggregation.\n\nThis property allows to use the alternative split instead of the default split.")
|
|
459
|
-
useAlternativeSplit Boolean?
|
|
460
|
-
|
|
461
|
-
///@@Description("TBD - Not clear what this is for")
|
|
462
|
-
isLinkedToTaxonomy Boolean
|
|
463
|
-
///@@Description("TBD - Not clear what this is for")
|
|
464
|
-
isForProductSplit Boolean
|
|
465
|
-
// isRefreshRequired Boolean
|
|
466
|
-
|
|
467
|
-
//@@Description("The indicator taxonomy that each aggregation requires.")
|
|
468
|
-
indicatorTaxonomyId Int
|
|
469
|
-
|
|
470
|
-
indicatorTaxonomy Taxonomy @relation("Aggregation_FK_IndicatorTaxonomyId_Taxonomy_Indicator", fields: [indicatorTaxonomyId], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
471
|
-
|
|
472
|
-
///@@Description("Optional list of taxonomies that are used to filter the aggregation.")
|
|
473
|
-
filterTaxonomies Taxonomy[] @relation("Aggregation_Taxonomy_Filter")
|
|
474
|
-
|
|
475
|
-
///@@Description("Optional list of taxonomy groups that are used to filter the aggregation.")
|
|
476
|
-
filterTaxonomyGroups TaxonomyGroup[] @relation("Aggregation_FK_FilterTaxonomyGroupId_TaxonomyGroup_Id")
|
|
477
|
-
|
|
478
|
-
///@@Description("The metrics that use this aggregation as numerator.")
|
|
479
|
-
numerators Metric[] @relation("Metric_FK_NumeratorId_Aggregation_Id")
|
|
480
|
-
///@@Description("The metrics that use this aggregation as denominator.")
|
|
481
|
-
denominators Metric[] @relation("Metric_FK_DenominatorId_Aggregation_Id")
|
|
482
|
-
|
|
483
|
-
// aggregationDataImportValues AggregationDataImportValues[]
|
|
484
|
-
// surveyQuestionsForAggregation SurveyQuestionsForAggregation[]
|
|
485
|
-
|
|
486
|
-
@@unique([key, useAlternativeSplit, isForProductSplit], map: "Aggregration_UK")
|
|
487
|
-
@@schema("Configuration")
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
// /// @@Ignore("test")
|
|
491
|
-
// model AggregationDataImportValues {
|
|
492
|
-
// AggregationId Int
|
|
493
|
-
// AggregationKey String
|
|
494
|
-
// DataImportId Int
|
|
495
|
-
// Value Float
|
|
496
|
-
// Aggregation Aggregation @relation(fields: [AggregationId], references: [Id], onUpdate: NoAction, map: "AggregationDataImportValues_FK_Aggregation_Id")
|
|
497
|
-
// DataImport DataImport @relation(fields: [DataImportId], references: [Id], onUpdate: NoAction, map: "AggregationDataImportValues_FK_DataImport_Id")
|
|
498
|
-
|
|
499
|
-
// @@id([AggregationId, DataImportId], map: "AggregationDataImportValues_PK")
|
|
500
|
-
// @@index([DataImportId], map: "AggregationDataImportValues_IDX_DataImportId")
|
|
501
|
-
// @@schema("Cache")
|
|
502
|
-
// }
|
|
503
|
-
|
|
504
|
-
// model DataImport {
|
|
505
|
-
// Id Int @id() @default(autoincrement())
|
|
506
|
-
// ParticipantId Int
|
|
507
|
-
// ImportedByUser String
|
|
508
|
-
// SourceFile String
|
|
509
|
-
// TimeStamp DateTime @db.DateTime
|
|
510
|
-
// ErrorCount Int
|
|
511
|
-
// ValueCount Int
|
|
512
|
-
// TextCount Int
|
|
513
|
-
// BlankCount Int
|
|
514
|
-
// ParticipantName String?
|
|
515
|
-
// AggregationDataImportValues AggregationDataImportValues[]
|
|
516
|
-
// Participant_DataImport_ParticipantIdToParticipant Participant @relation("DataImport_ParticipantIdToParticipant", fields: [ParticipantId], references: [Id], onUpdate: NoAction, map: "DataImport_FK_Participant_ParticipantId")
|
|
517
|
-
// User User @relation(fields: [ImportedByUser], references: [Login], onUpdate: NoAction, map: "DataImport_FK_User_ImportedByUser")
|
|
518
|
-
// MetricResult MetricResult[]
|
|
519
|
-
// Participant_Participant_LatestDataImportIdToDataImport Participant[] @relation("Participant_LatestDataImportIdToDataImport")
|
|
520
|
-
// ProductSplitData ProductSplitData[]
|
|
521
|
-
// SurveyData SurveyData[]
|
|
522
|
-
|
|
523
|
-
// @@schema("Participation")
|
|
524
|
-
// }
|
|
525
|
-
|
|
526
|
-
// model MetricOutlier {
|
|
527
|
-
// Id Int @id() @default(autoincrement())
|
|
528
|
-
// ParticipantId Int
|
|
529
|
-
// MetricId Int
|
|
530
|
-
// CreatedByUser String
|
|
531
|
-
// ValueInitial Float?
|
|
532
|
-
// ValueCorrected Float?
|
|
533
|
-
// Comment String?
|
|
534
|
-
// Metric Metric @relation(fields: [MetricId], references: [Id], onUpdate: NoAction, map: "MetricOutlier_FK_Metric_Id")
|
|
535
|
-
// Participant Participant @relation(fields: [ParticipantId], references: [Id], onUpdate: NoAction, map: "MetricOutlier_FK_Participant_Id")
|
|
536
|
-
// User User @relation(fields: [CreatedByUser], references: [Login], onUpdate: NoAction, map: "MetricOutlier_FK_User_Login")
|
|
537
|
-
|
|
538
|
-
// @@unique([ParticipantId, MetricId], map: "MetricOutlier_UK_ParticipantId_MetricId")
|
|
539
|
-
// @@schema("Participation")
|
|
540
|
-
// }
|
|
541
|
-
|
|
542
|
-
// /// @@Ignore("No single PK yet")
|
|
543
|
-
// model MetricResult {
|
|
544
|
-
// MetricId Int
|
|
545
|
-
// DataImportId Int
|
|
546
|
-
// SourceValue Float?
|
|
547
|
-
// Value Float?
|
|
548
|
-
// DataImport DataImport @relation(fields: [DataImportId], references: [Id], onUpdate: NoAction, map: "MetricResult_FK_DataImport_Id")
|
|
549
|
-
// Metric Metric @relation(fields: [MetricId], references: [Id], onUpdate: NoAction, map: "MetricResult_FK_Metric_Id")
|
|
550
|
-
|
|
551
|
-
// @@id([MetricId, DataImportId], map: "MetricResult_PK")
|
|
552
|
-
// @@schema("Benchmark")
|
|
553
|
-
// }
|
|
554
|
-
|
|
555
|
-
// model ParticipantChartSetting {
|
|
556
|
-
// Id Int @id() @default(autoincrement())
|
|
557
|
-
// ParticipantId Int
|
|
558
|
-
// SettingName String
|
|
559
|
-
// Value String
|
|
560
|
-
// Participant Participant @relation(fields: [ParticipantId], references: [Id], onDelete: Cascade, onUpdate: NoAction, map: "ParticipantChartSetting_FK_Participant_Id")
|
|
561
|
-
|
|
562
|
-
// @@unique([ParticipantId, SettingName], map: "ParticipantChartSetting_UK_ParticipantId_SettingName")
|
|
563
|
-
// @@schema("Participation")
|
|
564
|
-
// }
|
|
565
|
-
|
|
566
|
-
// /// @@Ignore("No single PK yet")
|
|
567
|
-
// model PeerGroupResult {
|
|
568
|
-
// PeerGroupId Int
|
|
569
|
-
// MetricId Int
|
|
570
|
-
// Mean Float?
|
|
571
|
-
// Count Int
|
|
572
|
-
// TQ Float?
|
|
573
|
-
// Median Float?
|
|
574
|
-
// BQ Float?
|
|
575
|
-
// Metric Metric @relation(fields: [MetricId], references: [Id], onUpdate: NoAction, map: "PeerGroupResult_FK_Metric_Id")
|
|
576
|
-
// PeerGroup PeerGroup @relation(fields: [PeerGroupId], references: [Id], onUpdate: NoAction, map: "PeerGroupResult_FK_PeerGroup_Id")
|
|
577
|
-
|
|
578
|
-
// @@id([PeerGroupId, MetricId], map: "PeerGroupResult_PK_PeerGroupId_MetricId")
|
|
579
|
-
// @@schema("Benchmark")
|
|
580
|
-
// }
|
|
581
|
-
|
|
582
|
-
// /// @@Ignore("No single PK yet")
|
|
583
|
-
// model ProductGroupResult {
|
|
584
|
-
// ProductGroupId Int
|
|
585
|
-
// SurveyId Int
|
|
586
|
-
// Year Int
|
|
587
|
-
// MetricId Int
|
|
588
|
-
// Mean Float?
|
|
589
|
-
// Count Int?
|
|
590
|
-
// TQ Float?
|
|
591
|
-
// Median Float?
|
|
592
|
-
// BQ Float?
|
|
593
|
-
// Metric Metric @relation(fields: [MetricId], references: [Id], onUpdate: NoAction, map: "ProductGroupResult_FK_Metric_Id")
|
|
594
|
-
// ProductGroup ProductGroup @relation(fields: [ProductGroupId], references: [Id], onUpdate: NoAction, map: "ProductGroupResult_FK_ProductGroup_Id")
|
|
595
|
-
// Survey Survey @relation(fields: [SurveyId], references: [Id], onUpdate: NoAction, map: "ProductGroupResult_FK_Survey_Id")
|
|
596
|
-
|
|
597
|
-
// @@id([ProductGroupId, Year, MetricId], map: "ProductGroupResut_PK")
|
|
598
|
-
// @@schema("Benchmark")
|
|
599
|
-
// }
|
|
600
|
-
|
|
601
|
-
// model ProductSplit {
|
|
602
|
-
// Id Int @id()
|
|
603
|
-
// SurveyId Int
|
|
604
|
-
// Name String
|
|
605
|
-
// Code String
|
|
606
|
-
// IsNoSplit Boolean
|
|
607
|
-
// IsDefault Boolean
|
|
608
|
-
// HasDetailedSplit Boolean
|
|
609
|
-
// TaxonomyId_Function Int?
|
|
610
|
-
// TaxonomyId_Kpi Int?
|
|
611
|
-
// Survey Survey @relation(fields: [SurveyId], references: [Id], onUpdate: NoAction, map: "ProductSplit_FK_Survey_Id")
|
|
612
|
-
// Taxonomy_ProductSplit_TaxonomyId_FunctionToTaxonomy Taxonomy? @relation("ProductSplit_TaxonomyId_FunctionToTaxonomy", fields: [TaxonomyId_Function], references: [Id], onDelete: NoAction, onUpdate: NoAction, map: "ProductSplit_FK_Taxonomy_TaxonomyId_Function")
|
|
613
|
-
// Taxonomy_ProductSplit_TaxonomyId_KpiToTaxonomy Taxonomy? @relation("ProductSplit_TaxonomyId_KpiToTaxonomy", fields: [TaxonomyId_Kpi], references: [Id], onDelete: NoAction, onUpdate: NoAction, map: "ProductSplit_FK_Taxonomy_TaxonomyId_Kpi")
|
|
614
|
-
// ProductSplitData ProductSplitData[]
|
|
615
|
-
// SurveyQuestion SurveyQuestion[]
|
|
616
|
-
// SurveyQuestionsForAggregation SurveyQuestionsForAggregation[]
|
|
617
|
-
// SurveyQuestionsWithTaxonomyAndProductSplit SurveyQuestionsWithTaxonomyAndProductSplit[]
|
|
618
|
-
|
|
619
|
-
// @@schema("Configuration")
|
|
620
|
-
// }
|
|
621
|
-
|
|
622
|
-
// model ProductSplitAggregations {
|
|
623
|
-
// Id Int @id() @default(autoincrement())
|
|
624
|
-
// ProductSplitId Int
|
|
625
|
-
// AggregrationId_Numerator Int
|
|
626
|
-
// TaxonomyId_Product String
|
|
627
|
-
// AggregationId_Denominator Int
|
|
628
|
-
|
|
629
|
-
// @@schema("Cache")
|
|
630
|
-
// }
|
|
631
|
-
|
|
632
|
-
// model ProductSplitData {
|
|
633
|
-
// Id Int @id() @default(autoincrement())
|
|
634
|
-
// DataImportId Int
|
|
635
|
-
// ProductSplitId Int
|
|
636
|
-
// PA Float?
|
|
637
|
-
// PAF Float?
|
|
638
|
-
// PAI Float?
|
|
639
|
-
// PAV Float?
|
|
640
|
-
// PH Float?
|
|
641
|
-
// PHD Float?
|
|
642
|
-
// PHL Float?
|
|
643
|
-
// PHO Float?
|
|
644
|
-
// PL Float?
|
|
645
|
-
// PLI Float?
|
|
646
|
-
// PLT Float?
|
|
647
|
-
// PLU Float?
|
|
648
|
-
// PLV Float?
|
|
649
|
-
// PLW Float?
|
|
650
|
-
// DataImport DataImport @relation(fields: [DataImportId], references: [Id], onUpdate: NoAction, map: "ProductSplitData_FK_DataImport_Id")
|
|
651
|
-
// ProductSplit ProductSplit @relation(fields: [ProductSplitId], references: [Id], onUpdate: NoAction, map: "ProductSplitData_FK_ProductSplit_Id")
|
|
652
|
-
|
|
653
|
-
// @@schema("Participation")
|
|
654
|
-
// }
|
|
655
|
-
|
|
656
|
-
// /// @@Ignore("No single PK yet")
|
|
657
|
-
// model ProductSplitDataUnpivot {
|
|
658
|
-
// DataImportId Int
|
|
659
|
-
// ProductSplitId Int
|
|
660
|
-
// TaxonomyId String
|
|
661
|
-
// Split Float
|
|
662
|
-
|
|
663
|
-
// @@id([DataImportId, ProductSplitId, TaxonomyId], map: "ProductSplitDataUnpivot_PK")
|
|
664
|
-
// @@schema("Cache")
|
|
665
|
-
// }
|
|
666
|
-
|
|
667
|
-
// model ProductSplitGroup {
|
|
668
|
-
// Id Int @id()
|
|
669
|
-
// SurveyId Int
|
|
670
|
-
// Name String
|
|
671
|
-
// TaxonomyId Int
|
|
672
|
-
// IsDetailed Boolean?
|
|
673
|
-
// IsTotal Boolean
|
|
674
|
-
// Survey Survey @relation(fields: [SurveyId], references: [Id], onUpdate: NoAction, map: "ProductSplitGroup_FK_Survey_Id")
|
|
675
|
-
// Taxonomy Taxonomy @relation(fields: [TaxonomyId], references: [Id], onUpdate: NoAction, map: "ProductSplitGroup_FK_Taxonomy_Id")
|
|
676
|
-
|
|
677
|
-
// @@schema("Configuration")
|
|
678
|
-
// }
|
|
679
|
-
|
|
680
|
-
// model Question {
|
|
681
|
-
// Id Int @id() @default(autoincrement())
|
|
682
|
-
// SurveyId Int
|
|
683
|
-
// Key String?
|
|
684
|
-
// IsInput Boolean @default(true, map: "DF__Question__IsInpu__04E4BC85")
|
|
685
|
-
// IsLinkedToTaxonomy Boolean
|
|
686
|
-
// Survey Survey @relation(fields: [SurveyId], references: [Id], onUpdate: NoAction, map: "Question_FK_Survey_Id")
|
|
687
|
-
// QuestionTaxonomy QuestionTaxonomy[]
|
|
688
|
-
// SurveyQuestion SurveyQuestion[]
|
|
689
|
-
// SurveyQuestionsForAggregation SurveyQuestionsForAggregation[]
|
|
690
|
-
// SurveyQuestionsWithTaxonomyAndProductSplit SurveyQuestionsWithTaxonomyAndProductSplit[]
|
|
691
|
-
|
|
692
|
-
// @@schema("Configuration")
|
|
693
|
-
// }
|
|
694
|
-
|
|
695
|
-
// /// @@Ignore("No single PK yet")
|
|
696
|
-
// model QuestionTaxonomy {
|
|
697
|
-
// QuestionId Int
|
|
698
|
-
// TaxonomyId Int
|
|
699
|
-
// Question Question @relation(fields: [QuestionId], references: [Id], onDelete: Cascade, onUpdate: NoAction, map: "QuestionTaxonomy_FK_Question_Key")
|
|
700
|
-
// Taxonomy Taxonomy @relation(fields: [TaxonomyId], references: [Id], onDelete: Cascade, onUpdate: NoAction, map: "QuestionTaxonomy_FK_Taxonomies_Key")
|
|
701
|
-
|
|
702
|
-
// @@id([QuestionId, TaxonomyId], map: "QuestionTaxonomy_PK")
|
|
703
|
-
// @@schema("Configuration")
|
|
704
|
-
// }
|
|
705
|
-
|
|
706
|
-
// model SurveyData {
|
|
707
|
-
// Id Int @id() @default(autoincrement())
|
|
708
|
-
// DataImportId Int
|
|
709
|
-
// SurveyQuestionId Int
|
|
710
|
-
// Value Float?
|
|
711
|
-
// TextValue String?
|
|
712
|
-
// ImportError String?
|
|
713
|
-
// CellSourceValue String?
|
|
714
|
-
// CellSourceFormula String?
|
|
715
|
-
// CellComment String?
|
|
716
|
-
// DataImport DataImport @relation(fields: [DataImportId], references: [Id], onUpdate: NoAction, map: "SurveyData_FK_DataImport_Id")
|
|
717
|
-
// SurveyQuestion SurveyQuestion @relation(fields: [SurveyQuestionId], references: [Id], onUpdate: NoAction, map: "SurveyData_FK_SurveyQuestion_Id")
|
|
718
|
-
|
|
719
|
-
// @@schema("Participation")
|
|
720
|
-
// }
|
|
721
|
-
|
|
722
|
-
// model SurveyQuestion {
|
|
723
|
-
// Id Int @id() @default(autoincrement())
|
|
724
|
-
// SurveyId Int
|
|
725
|
-
// QuestionId Int
|
|
726
|
-
// TemplateWorksheet String
|
|
727
|
-
// TemplateRow Int
|
|
728
|
-
// TemplateColumn Int
|
|
729
|
-
// RowLabel String?
|
|
730
|
-
// ColumnLabel String?
|
|
731
|
-
// SectionLabel String?
|
|
732
|
-
// IsGeneratedDuringImport Boolean @default(false, map: "DF__SurveyQue__IsGen__7E37BEF6")
|
|
733
|
-
// IsCalculatedInExcel Boolean @default(false, map: "DF__SurveyQue__IsCal__7F2BE32F")
|
|
734
|
-
// ExcelFormula String?
|
|
735
|
-
// IsDuplicate Boolean @default(false, map: "DF__SurveyQue__IsDup__00200768")
|
|
736
|
-
// IsDuplicateSplit Boolean @default(false, map: "DF__SurveyQue__IsDup__01142BA1")
|
|
737
|
-
// ProvidedInLastImport Boolean @default(true, map: "DF__SurveyQue__Provi__02084FDA")
|
|
738
|
-
// OldExcelId Int?
|
|
739
|
-
// ProductSplitKey String?
|
|
740
|
-
// IsInvalidInput Boolean?
|
|
741
|
-
// ProductSplitId Int?
|
|
742
|
-
// IsText Boolean
|
|
743
|
-
// SurveyData SurveyData[]
|
|
744
|
-
// ProductSplit ProductSplit? @relation(fields: [ProductSplitId], references: [Id], onDelete: NoAction, onUpdate: NoAction, map: "SurveyQuestion_FK_ProductSplit_Id")
|
|
745
|
-
// Question Question @relation(fields: [QuestionId], references: [Id], onDelete: Cascade, onUpdate: NoAction, map: "SurveyQuestion_FK_Question_Key")
|
|
746
|
-
// Survey Survey @relation(fields: [SurveyId], references: [Id], onDelete: Cascade, onUpdate: NoAction, map: "SurveyQuestion_FK_Survey_Key")
|
|
747
|
-
// SurveyQuestionsForAggregation SurveyQuestionsForAggregation[]
|
|
748
|
-
// SurveyQuestionsWithTaxonomyAndProductSplit SurveyQuestionsWithTaxonomyAndProductSplit[]
|
|
749
|
-
|
|
750
|
-
// @@schema("Configuration")
|
|
751
|
-
// }
|
|
752
|
-
|
|
753
|
-
// /// @@Ignore("No single PK yet")
|
|
754
|
-
// model SurveyQuestionsForAggregation {
|
|
755
|
-
// AggregationId Int
|
|
756
|
-
// QuestionId Int
|
|
757
|
-
// SurveyQuestionId Int
|
|
758
|
-
// ProductTaxonomyId Int
|
|
759
|
-
// ProductSplitId Int
|
|
760
|
-
// AggregationKey String
|
|
761
|
-
// QuestionKey String
|
|
762
|
-
// AggregationFactor Float?
|
|
763
|
-
// IsForProductSplit Boolean
|
|
764
|
-
// Aggregation Aggregation @relation(fields: [AggregationId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsForAggregation_FK_Aggregation_Id")
|
|
765
|
-
// ProductSplit ProductSplit @relation(fields: [ProductSplitId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsForAggregation_FK_ProductSplit_Id")
|
|
766
|
-
// Taxonomy Taxonomy @relation(fields: [ProductTaxonomyId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsForAggregation_FK_ProductTaxonomy_Id")
|
|
767
|
-
// Question Question @relation(fields: [QuestionId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsForAggregation_FK_Question_Id")
|
|
768
|
-
// SurveyQuestion SurveyQuestion @relation(fields: [SurveyQuestionId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsForAggregation_FK_SurveyQuestion_Id")
|
|
769
|
-
|
|
770
|
-
// @@id([AggregationId, QuestionId, SurveyQuestionId, ProductTaxonomyId, ProductSplitId, IsForProductSplit], map: "SurveyQuestionsForAggregation_PK")
|
|
771
|
-
// @@schema("Cache")
|
|
772
|
-
// }
|
|
773
|
-
|
|
774
|
-
// /// @@Ignore("No single PK yet")
|
|
775
|
-
// model SurveyQuestionsWithTaxonomyAndProductSplit {
|
|
776
|
-
// QuestionId Int
|
|
777
|
-
// QuestionKey String?
|
|
778
|
-
// SurveyQuestionId Int
|
|
779
|
-
// SurveyQuestionIsDuplicateSplit Int
|
|
780
|
-
// QuestionTaxonomyId Int
|
|
781
|
-
// ProductTaxonomyId Int
|
|
782
|
-
// ProductSplitId Int
|
|
783
|
-
// IsRatio Boolean
|
|
784
|
-
// IsKpi Boolean
|
|
785
|
-
// AggregationFactor Float?
|
|
786
|
-
// ProductSplit ProductSplit @relation(fields: [ProductSplitId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsWithTaxonomyAndProductSplit_FK_ProductSplit_Id")
|
|
787
|
-
// Taxonomy_SurveyQuestionsWithTaxonomyAndProductSplit_ProductTaxonomyIdToTaxonomy Taxonomy @relation("SurveyQuestionsWithTaxonomyAndProductSplit_ProductTaxonomyIdToTaxonomy", fields: [ProductTaxonomyId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsWithTaxonomyAndProductSplit_FK_ProductTaxonomy_Id")
|
|
788
|
-
// Question Question @relation(fields: [QuestionId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsWithTaxonomyAndProductSplit_FK_Question_Id")
|
|
789
|
-
// Taxonomy_SurveyQuestionsWithTaxonomyAndProductSplit_QuestionTaxonomyIdToTaxonomy Taxonomy @relation("SurveyQuestionsWithTaxonomyAndProductSplit_QuestionTaxonomyIdToTaxonomy", fields: [QuestionTaxonomyId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsWithTaxonomyAndProductSplit_FK_QuestionTaxonomy_Id")
|
|
790
|
-
// SurveyQuestion SurveyQuestion @relation(fields: [SurveyQuestionId], references: [Id], onUpdate: NoAction, map: "SurveyQuestionsWithTaxonomyAndProductSplit_FK_SurveyQuestion_Id")
|
|
791
|
-
|
|
792
|
-
// @@id([QuestionId, SurveyQuestionId, QuestionTaxonomyId, ProductTaxonomyId, ProductSplitId], map: "SurveyQuestionsWithTaxonomyAndProductSplit_PK")
|
|
793
|
-
// @@schema("Cache")
|
|
794
|
-
// }
|
|
795
|
-
|
|
796
|
-
// model TaxonomyFull {
|
|
797
|
-
// Id Int @id()
|
|
798
|
-
// SurveyId Int
|
|
799
|
-
// Key String
|
|
800
|
-
// Level Int
|
|
801
|
-
// ParentKey String?
|
|
802
|
-
// LevelKey String @db.NChar(1)
|
|
803
|
-
// L1LevelKey String @db.NChar(1)
|
|
804
|
-
// L2LevelKey String? @db.NChar(1)
|
|
805
|
-
// L3LevelKey String? @db.NChar(1)
|
|
806
|
-
// L4LevelKey String? @db.NChar(1)
|
|
807
|
-
// L5LevelKey String? @db.NChar(1)
|
|
808
|
-
// L6LevelKey String? @db.NChar(1)
|
|
809
|
-
// L7LevelKey String? @db.NChar(1)
|
|
810
|
-
// L8LevelKey String? @db.NChar(1)
|
|
811
|
-
// Name String
|
|
812
|
-
// NameFull String
|
|
813
|
-
// Synonyms String?
|
|
814
|
-
// L1Name String
|
|
815
|
-
// L2Name String?
|
|
816
|
-
// L3Name String?
|
|
817
|
-
// L4Name String?
|
|
818
|
-
// L5Name String?
|
|
819
|
-
// L6Name String?
|
|
820
|
-
// L7Name String?
|
|
821
|
-
// L8Name String?
|
|
822
|
-
// L1Order Int?
|
|
823
|
-
// L2Order Int?
|
|
824
|
-
// L3Order Int?
|
|
825
|
-
// L4Order Int?
|
|
826
|
-
// L5Order Int?
|
|
827
|
-
// L6Order Int?
|
|
828
|
-
// L7Order Int?
|
|
829
|
-
// L8Order Int?
|
|
830
|
-
// Kpi_HasChannelBreakDown Boolean?
|
|
831
|
-
// Kpi_Unit String?
|
|
832
|
-
// Kpi_IsRatio Boolean?
|
|
833
|
-
// Kpi_SplitByProduct Boolean?
|
|
834
|
-
// Kpi_ExportProductOnly String?
|
|
835
|
-
// Kpi_OnlyKPIAggregation Boolean?
|
|
836
|
-
// Kpi_AggregationFactor Float?
|
|
837
|
-
// Function_IsSummation Boolean?
|
|
838
|
-
// L1IdFull String? @db.NChar(2)
|
|
839
|
-
// L2IdFull String? @db.NChar(3)
|
|
840
|
-
// L3IdFull String? @db.NChar(4)
|
|
841
|
-
// L4IdFull String? @db.NChar(5)
|
|
842
|
-
// L5IdFull String? @db.NChar(6)
|
|
843
|
-
// L6IdFull String? @db.NChar(7)
|
|
844
|
-
// L7IdFull String? @db.NChar(8)
|
|
845
|
-
// L8IdFull String? @db.NChar(9)
|
|
846
|
-
// Group1 String?
|
|
847
|
-
// Group2 String?
|
|
848
|
-
// Group3 String?
|
|
849
|
-
// Function_Section String?
|
|
850
|
-
// Notes String?
|
|
851
|
-
|
|
852
|
-
// @@unique([SurveyId, Key], map: "TaxonomyFull_UK_SurveyId_Key")
|
|
853
|
-
// @@schema("Cache")
|
|
854
|
-
// }
|
|
855
|
-
|
|
856
|
-
// model User {
|
|
857
|
-
// Login String @id()
|
|
858
|
-
// DataImport DataImport[]
|
|
859
|
-
// MetricOutlier MetricOutlier[]
|
|
860
|
-
|
|
861
|
-
// @@schema("User")
|
|
862
|
-
// }
|