codebase-models 1.0.7 → 2.0.1
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/.github/workflows/npm-publish.yml +33 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +7 -5
- package/dist/src/models/Announcement.d.ts +7 -8
- package/dist/src/models/Announcement.js +30 -10
- package/dist/src/models/AppEvent.d.ts +1 -3
- package/dist/src/models/AppEvent.js +1 -1
- package/dist/src/models/Audience.d.ts +2 -3
- package/dist/src/models/Audience.js +6 -1
- package/dist/src/models/{Experiments.d.ts → BqPreCompiledData.d.ts} +12 -32
- package/dist/src/models/{ClientExperiment.js → BqPreCompiledData.js} +26 -46
- package/dist/src/models/CVRReport.d.ts +2 -3
- package/dist/src/models/CVRReport.js +14 -1
- package/dist/src/models/Client.d.ts +2 -4
- package/dist/src/models/Client.js +32 -52
- package/dist/src/models/ClientAdditionalRevenue.d.ts +2 -4
- package/dist/src/models/ClientAdditionalRevenue.js +4 -3
- package/dist/src/models/ClientLearning.d.ts +2 -4
- package/dist/src/models/ClientLearning.js +11 -7
- package/dist/src/models/ClientLinks.d.ts +2 -4
- package/dist/src/models/ClientLinks.js +16 -7
- package/dist/src/models/ClientNextSteps.d.ts +2 -4
- package/dist/src/models/ClientNextSteps.js +4 -3
- package/dist/src/models/ClientNote.d.ts +2 -4
- package/dist/src/models/ClientNote.js +4 -3
- package/dist/src/models/ClientReportsTemp.d.ts +2 -4
- package/dist/src/models/ClientReportsTemp.js +21 -3
- package/dist/src/models/ClientRetention.d.ts +2 -3
- package/dist/src/models/ClientRetention.js +19 -1
- package/dist/src/models/ClientScript.d.ts +2 -4
- package/dist/src/models/ClientScript.js +25 -9
- package/dist/src/models/ClientStrategy.d.ts +2 -4
- package/dist/src/models/ClientStrategy.js +4 -3
- package/dist/src/models/ClientSurvay.d.ts +2 -7
- package/dist/src/models/ClientSurvay.js +6 -1
- package/dist/src/models/Environment.d.ts +3 -3
- package/dist/src/models/Environment.js +27 -3
- package/dist/src/models/Faqs.d.ts +2 -3
- package/dist/src/models/Faqs.js +6 -1
- package/dist/src/models/Feedback.d.ts +2 -4
- package/dist/src/models/Feedback.js +4 -3
- package/dist/src/models/Goal.d.ts +3 -4
- package/dist/src/models/Goal.js +34 -12
- package/dist/src/models/Hypothesis.d.ts +3 -3
- package/dist/src/models/Hypothesis.js +50 -10
- package/dist/src/models/HypothesisSheet.d.ts +2 -4
- package/dist/src/models/HypothesisSheet.js +27 -3
- package/dist/src/models/LandingPages.d.ts +4 -3
- package/dist/src/models/LandingPages.js +30 -1
- package/dist/src/models/NewIdeas.d.ts +2 -4
- package/dist/src/models/NewIdeas.js +4 -3
- package/dist/src/models/Notification.d.ts +2 -3
- package/dist/src/models/Notification.js +30 -2
- package/dist/src/models/{ClientExperiment.d.ts → Organization.d.ts} +18 -31
- package/dist/src/models/{Experiments.js → Organization.js} +36 -54
- package/dist/src/models/Page.d.ts +4 -4
- package/dist/src/models/Page.js +57 -5
- package/dist/src/models/PageElement.d.ts +4 -3
- package/dist/src/models/PageElement.js +60 -8
- package/dist/src/models/PageTestType.d.ts +3 -3
- package/dist/src/models/PageTestType.js +42 -6
- package/dist/src/models/Portfolio.d.ts +2 -3
- package/dist/src/models/Portfolio.js +6 -1
- package/dist/src/models/PrecalculationFilters.d.ts +34 -0
- package/dist/src/models/PrecalculationFilters.js +78 -0
- package/dist/src/models/QueryLog.d.ts +2 -4
- package/dist/src/models/QueryLog.js +4 -3
- package/dist/src/models/ReadNotification.d.ts +2 -3
- package/dist/src/models/ReadNotification.js +30 -2
- package/dist/src/models/Report.d.ts +3 -4
- package/dist/src/models/Report.js +33 -49
- package/dist/src/models/Role.d.ts +4 -3
- package/dist/src/models/Role.js +51 -8
- package/dist/src/models/SavedSegment.d.ts +2 -3
- package/dist/src/models/SavedSegment.js +6 -1
- package/dist/src/models/Segment.d.ts +2 -3
- package/dist/src/models/Segment.js +6 -1
- package/dist/src/models/SegmentCombination.d.ts +2 -3
- package/dist/src/models/SegmentCombination.js +6 -1
- package/dist/src/models/Snippet.d.ts +3 -4
- package/dist/src/models/Snippet.js +29 -4
- package/dist/src/models/StageInCustomerJourney.d.ts +4 -4
- package/dist/src/models/StageInCustomerJourney.js +56 -4
- package/dist/src/models/Tag.d.ts +2 -3
- package/dist/src/models/Tag.js +30 -2
- package/dist/src/models/Temp.d.ts +2 -3
- package/dist/src/models/Temp.js +30 -2
- package/dist/src/models/Test.d.ts +17 -18
- package/dist/src/models/Test.js +83 -186
- package/dist/src/models/TestSequentialValue.d.ts +2 -3
- package/dist/src/models/TestSequentialValue.js +6 -1
- package/dist/src/models/Tier.d.ts +2 -3
- package/dist/src/models/Tier.js +30 -2
- package/dist/src/models/Trigger.d.ts +2 -3
- package/dist/src/models/Trigger.js +30 -2
- package/dist/src/models/User.d.ts +2 -3
- package/dist/src/models/User.js +10 -11
- package/index.ts +6 -4
- package/package.json +1 -1
- package/src/models/Announcement.ts +51 -28
- package/src/models/AppEvent.ts +1 -1
- package/src/models/Audience.ts +7 -1
- package/src/models/BqPreCompiledData.ts +62 -0
- package/src/models/CVRReport.ts +18 -1
- package/src/models/Client.ts +40 -60
- package/src/models/ClientAdditionalRevenue.ts +5 -4
- package/src/models/ClientLearning.ts +12 -8
- package/src/models/ClientLinks.ts +19 -8
- package/src/models/ClientNextSteps.ts +5 -4
- package/src/models/ClientNote.ts +5 -4
- package/src/models/ClientReportsTemp.ts +25 -4
- package/src/models/ClientRetention.ts +28 -2
- package/src/models/ClientScript.ts +27 -10
- package/src/models/ClientStrategy.ts +5 -4
- package/src/models/ClientSurvay.ts +7 -1
- package/src/models/Environment.ts +32 -4
- package/src/models/Faqs.ts +7 -1
- package/src/models/Feedback.ts +5 -4
- package/src/models/Goal.ts +37 -13
- package/src/models/Hypothesis.ts +30 -9
- package/src/models/HypothesisSheet.ts +4 -3
- package/src/models/LandingPages.ts +35 -1
- package/src/models/NewIdeas.ts +5 -4
- package/src/models/Notification.ts +7 -1
- package/src/models/Organization.ts +86 -0
- package/src/models/Page.ts +63 -6
- package/src/models/PageElement.ts +39 -8
- package/src/models/PageTestType.ts +22 -5
- package/src/models/Portfolio.ts +7 -1
- package/src/models/PrecalculationFilters.ts +68 -0
- package/src/models/QueryLog.ts +5 -4
- package/src/models/ReadNotification.ts +7 -1
- package/src/models/Report.ts +55 -67
- package/src/models/Role.ts +32 -7
- package/src/models/SavedSegment.ts +7 -1
- package/src/models/Segment.ts +7 -1
- package/src/models/SegmentCombination.ts +7 -1
- package/src/models/Snippet.ts +33 -5
- package/src/models/StageInCustomerJourney.ts +34 -6
- package/src/models/Tag.ts +7 -1
- package/src/models/Temp.ts +7 -1
- package/src/models/Test.ts +156 -244
- package/src/models/TestSequentialValue.ts +7 -1
- package/src/models/Tier.ts +7 -1
- package/src/models/Trigger.ts +7 -1
- package/src/models/User.ts +12 -11
- package/src/models/ClientExperiment.ts +0 -113
- package/src/models/Experiments.ts +0 -118
package/dist/src/models/Test.js
CHANGED
|
@@ -25,240 +25,137 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
const mongoose_1 = __importStar(require("mongoose"));
|
|
27
27
|
const VariationsSchema = new mongoose_1.Schema({
|
|
28
|
-
name: {
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
-
metadata_1: {
|
|
41
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
42
|
-
},
|
|
43
|
-
metadata_2: {
|
|
44
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
45
|
-
},
|
|
46
|
-
metadata_3: {
|
|
47
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
48
|
-
},
|
|
49
|
-
jscode: {
|
|
50
|
-
type: String,
|
|
51
|
-
},
|
|
52
|
-
reset_js: {
|
|
53
|
-
type: String,
|
|
54
|
-
},
|
|
55
|
-
csscode: {
|
|
56
|
-
type: String,
|
|
57
|
-
},
|
|
58
|
-
changesets: {
|
|
59
|
-
type: String,
|
|
60
|
-
default: "[]",
|
|
61
|
-
},
|
|
28
|
+
name: { type: String, required: true },
|
|
29
|
+
css_code: { type: String, default: "" },
|
|
30
|
+
baseline: { type: Boolean, default: false },
|
|
31
|
+
traffic_allocation: { type: Number, default: 0 },
|
|
32
|
+
metadata_1: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
33
|
+
metadata_2: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
34
|
+
metadata_3: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
35
|
+
jscode: { type: String, default: "" },
|
|
36
|
+
reset_js: { type: String, default: "" },
|
|
37
|
+
csscode: { type: String, default: "" },
|
|
38
|
+
changesets: { type: String, default: "[]" }
|
|
62
39
|
});
|
|
63
40
|
const TestSchema = new mongoose_1.Schema({
|
|
64
|
-
|
|
65
|
-
type:
|
|
66
|
-
|
|
41
|
+
organizationId: {
|
|
42
|
+
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
43
|
+
ref: "organization",
|
|
44
|
+
default: null
|
|
67
45
|
},
|
|
68
46
|
status: {
|
|
69
47
|
type: String,
|
|
70
48
|
default: "draft",
|
|
71
|
-
enum: ["live", "draft", "ended", "paused", "preview"
|
|
72
|
-
},
|
|
73
|
-
name: {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
},
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
},
|
|
88
|
-
metadata_2: {
|
|
89
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
90
|
-
},
|
|
91
|
-
metadata_3: {
|
|
92
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
93
|
-
},
|
|
94
|
-
integrations_run_mode: {
|
|
95
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
96
|
-
},
|
|
97
|
-
jscode: {
|
|
98
|
-
type: String,
|
|
99
|
-
default: "",
|
|
100
|
-
},
|
|
101
|
-
reset_js: {
|
|
102
|
-
type: String,
|
|
103
|
-
},
|
|
104
|
-
csscode: {
|
|
105
|
-
type: String,
|
|
106
|
-
},
|
|
49
|
+
enum: ["live", "draft", "ended", "paused", "preview", "running"]
|
|
50
|
+
},
|
|
51
|
+
name: { type: String, required: true },
|
|
52
|
+
traffic_allocation: { type: Number, default: 100 },
|
|
53
|
+
audiences_match_type: { type: String, default: "all" },
|
|
54
|
+
// Metadata fields
|
|
55
|
+
metadata_1: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
56
|
+
metadata_2: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
57
|
+
metadata_3: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
58
|
+
integrations_run_mode: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
59
|
+
// Code fields
|
|
60
|
+
jscode: { type: String, default: "" },
|
|
61
|
+
reset_js: { type: String, default: "" },
|
|
62
|
+
csscode: { type: String, default: "" },
|
|
63
|
+
htmlcode: { type: String, default: "" },
|
|
64
|
+
// References with proper refs and defaults
|
|
107
65
|
audiences: {
|
|
108
66
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
109
67
|
ref: "audience",
|
|
110
|
-
default: []
|
|
68
|
+
default: []
|
|
111
69
|
},
|
|
112
70
|
pages: {
|
|
113
71
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
114
72
|
ref: "page",
|
|
115
|
-
default: []
|
|
73
|
+
default: []
|
|
116
74
|
},
|
|
117
75
|
variations: [VariationsSchema],
|
|
118
76
|
environments: {
|
|
119
77
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
120
78
|
ref: "environment",
|
|
121
|
-
default: []
|
|
79
|
+
default: []
|
|
122
80
|
},
|
|
123
81
|
pageelement: {
|
|
124
82
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
125
83
|
ref: "pageelement",
|
|
126
|
-
default: []
|
|
84
|
+
default: []
|
|
127
85
|
},
|
|
128
86
|
client: {
|
|
129
87
|
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
130
|
-
ref: "client"
|
|
131
|
-
},
|
|
132
|
-
property: {
|
|
133
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
134
|
-
},
|
|
135
|
-
platform: {
|
|
136
|
-
type: String,
|
|
137
|
-
default: "BQ",
|
|
138
|
-
},
|
|
139
|
-
viewId: {
|
|
140
|
-
type: String,
|
|
88
|
+
ref: "client"
|
|
141
89
|
},
|
|
142
90
|
goal: {
|
|
143
91
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
144
92
|
ref: "goal",
|
|
145
|
-
default: []
|
|
93
|
+
default: []
|
|
146
94
|
},
|
|
147
95
|
pagetesttype: {
|
|
148
96
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
149
97
|
ref: "pagetesttype",
|
|
150
|
-
default: []
|
|
151
|
-
},
|
|
152
|
-
controlimage: {
|
|
153
|
-
type: String,
|
|
154
|
-
default: null,
|
|
155
|
-
},
|
|
156
|
-
variationimage: {
|
|
157
|
-
type: String,
|
|
158
|
-
default: null,
|
|
98
|
+
default: []
|
|
159
99
|
},
|
|
160
100
|
tags: {
|
|
161
101
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
162
102
|
ref: "tag",
|
|
163
|
-
default: []
|
|
103
|
+
default: []
|
|
164
104
|
},
|
|
165
105
|
hypothesis: {
|
|
166
106
|
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
167
|
-
ref: "hypos"
|
|
168
|
-
default: null,
|
|
169
|
-
},
|
|
170
|
-
// Action , Posibility, Hypothesis
|
|
171
|
-
// Check if we need anymore
|
|
172
|
-
urltargeting: {
|
|
173
|
-
type: [],
|
|
174
|
-
default: [],
|
|
175
|
-
},
|
|
176
|
-
// Check if we need anymore
|
|
177
|
-
pageaudience: {
|
|
178
|
-
type: String,
|
|
179
|
-
default: null,
|
|
180
|
-
},
|
|
181
|
-
targetaudience: {
|
|
182
|
-
type: String,
|
|
183
|
-
default: null,
|
|
184
|
-
},
|
|
185
|
-
page: {
|
|
186
|
-
type: String,
|
|
187
|
-
default: null,
|
|
188
|
-
},
|
|
189
|
-
pageNotContains: {
|
|
190
|
-
type: String,
|
|
191
|
-
default: null,
|
|
192
|
-
},
|
|
193
|
-
eventparameter: {
|
|
194
|
-
type: String,
|
|
195
|
-
default: null,
|
|
196
|
-
},
|
|
197
|
-
htmlcode: {
|
|
198
|
-
type: String,
|
|
199
|
-
default: "",
|
|
200
|
-
},
|
|
201
|
-
testid: {
|
|
202
|
-
type: String,
|
|
203
|
-
default: null,
|
|
204
|
-
},
|
|
205
|
-
testtool: {
|
|
206
|
-
type: String,
|
|
207
|
-
default: "",
|
|
208
|
-
},
|
|
209
|
-
kameleoontestdetails: {
|
|
210
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
211
|
-
default: null,
|
|
212
|
-
},
|
|
213
|
-
vwotestdetails: {
|
|
214
|
-
type: mongoose_1.default.Schema.Types.Mixed,
|
|
215
|
-
default: null,
|
|
107
|
+
ref: "hypos"
|
|
216
108
|
},
|
|
217
109
|
trigger: {
|
|
218
110
|
type: [mongoose_1.default.Schema.Types.ObjectId],
|
|
219
111
|
ref: "trigger",
|
|
220
|
-
default: []
|
|
221
|
-
},
|
|
222
|
-
triggerevents: {
|
|
223
|
-
type: [],
|
|
224
|
-
default: [],
|
|
112
|
+
default: []
|
|
225
113
|
},
|
|
226
114
|
stageincustomerjourney: {
|
|
227
115
|
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
228
|
-
ref: "stageincustomerjourney"
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
},
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
},
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
},
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
},
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
},
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
255
|
-
enddate: {
|
|
256
|
-
type: Date,
|
|
257
|
-
default: null,
|
|
258
|
-
},
|
|
116
|
+
ref: "stageincustomerjourney"
|
|
117
|
+
},
|
|
118
|
+
// Test configuration
|
|
119
|
+
property: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
120
|
+
platform: { type: String, default: "BQ" },
|
|
121
|
+
viewId: { type: String, default: "" },
|
|
122
|
+
controlimage: { type: String, default: null },
|
|
123
|
+
variationimage: { type: String, default: null },
|
|
124
|
+
urltargeting: { type: [], default: [] },
|
|
125
|
+
pageaudience: { type: String, default: null },
|
|
126
|
+
targetaudience: { type: String, default: null },
|
|
127
|
+
page: { type: String, default: null },
|
|
128
|
+
pageNotContains: { type: String, default: null },
|
|
129
|
+
eventparameter: { type: String, default: null },
|
|
130
|
+
testid: { type: String, default: null },
|
|
131
|
+
testtool: { type: String, default: "" },
|
|
132
|
+
personalization: { type: Boolean, default: false },
|
|
133
|
+
kameleoontestdetails: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
134
|
+
vwotestdetails: { type: mongoose_1.default.Schema.Types.Mixed, default: null },
|
|
135
|
+
triggerevents: { type: [], default: [] },
|
|
136
|
+
selectedevent: { type: String, default: null },
|
|
137
|
+
revenue: { type: [], default: [] },
|
|
138
|
+
significance: { type: String, default: "" },
|
|
139
|
+
recommendedsamplesize: { type: Number, default: null },
|
|
140
|
+
livedate: { type: Date, default: null },
|
|
141
|
+
defaultControl: { type: String, default: null },
|
|
142
|
+
enddate: { type: Date, default: null }
|
|
259
143
|
}, {
|
|
260
|
-
timestamps: true
|
|
144
|
+
timestamps: true
|
|
261
145
|
});
|
|
146
|
+
// Add compound indexes for better query performance
|
|
262
147
|
TestSchema.index({ client: 1, status: 1 });
|
|
263
|
-
|
|
148
|
+
TestSchema.index({ client: 1, status: 1, livedate: 1 });
|
|
149
|
+
TestSchema.index({ client: 1, status: 1, enddate: 1 });
|
|
150
|
+
TestSchema.index({ client: 1, testtool: 1, status: 1 });
|
|
151
|
+
TestSchema.index({ name: 1 }, { collation: { locale: 'en', strength: 2 } }); // Case-insensitive search
|
|
152
|
+
TestSchema.index({ "variations._id": 1 });
|
|
153
|
+
TestSchema.index({ status: 1, livedate: 1 });
|
|
154
|
+
TestSchema.index({ status: 1, enddate: 1 });
|
|
155
|
+
// Add partial indexes for better performance
|
|
156
|
+
TestSchema.index({ status: 1 }, { partialFilterExpression: { status: { $in: ['live', 'running', 'draft', 'paused', 'preview', 'ended'] } } });
|
|
157
|
+
TestSchema.index({ client: 1, status: 1 }, { partialFilterExpression: { status: { $in: ['live', 'running', 'draft', 'paused', 'preview', 'ended'] } } });
|
|
158
|
+
// Add TTL index for automatic cleanup of ended tests after 1 year
|
|
159
|
+
TestSchema.index({ enddate: 1 }, { expireAfterSeconds: 31536000 });
|
|
160
|
+
const Test = mongoose_1.default.models.test || (0, mongoose_1.model)("test", TestSchema);
|
|
264
161
|
exports.default = Test;
|
|
@@ -31,8 +31,7 @@ export interface ITestSequentialValue extends Document {
|
|
|
31
31
|
nMax: number;
|
|
32
32
|
createdAt?: Date;
|
|
33
33
|
updatedAt?: Date;
|
|
34
|
+
organizationId?: mongoose.Schema.Types.ObjectId;
|
|
34
35
|
}
|
|
35
|
-
declare const TestSequentialValue: mongoose.Model<
|
|
36
|
-
_id: mongoose.Types.ObjectId;
|
|
37
|
-
}, any>;
|
|
36
|
+
declare const TestSequentialValue: mongoose.Model<any, {}, {}, {}, any, any>;
|
|
38
37
|
export default TestSequentialValue;
|
|
@@ -25,6 +25,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
const mongoose_1 = __importStar(require("mongoose"));
|
|
27
27
|
const TestSequentialValueSchema = new mongoose_1.Schema({
|
|
28
|
+
organizationId: {
|
|
29
|
+
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
30
|
+
ref: "organization",
|
|
31
|
+
default: null,
|
|
32
|
+
},
|
|
28
33
|
test: {
|
|
29
34
|
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
30
35
|
ref: "test",
|
|
@@ -50,5 +55,5 @@ const TestSequentialValueSchema = new mongoose_1.Schema({
|
|
|
50
55
|
timestamps: true,
|
|
51
56
|
});
|
|
52
57
|
TestSequentialValueSchema.index({ test: 1 });
|
|
53
|
-
const TestSequentialValue = (0, mongoose_1.model)("testsequentialvalue", TestSequentialValueSchema);
|
|
58
|
+
const TestSequentialValue = mongoose_1.default.models.testsequentialvalue || (0, mongoose_1.model)("testsequentialvalue", TestSequentialValueSchema);
|
|
54
59
|
exports.default = TestSequentialValue;
|
|
@@ -29,8 +29,7 @@ export interface ITier extends Document {
|
|
|
29
29
|
colorSwatch?: string;
|
|
30
30
|
createdAt?: Date;
|
|
31
31
|
updatedAt?: Date;
|
|
32
|
+
organizationId?: mongoose.Schema.Types.ObjectId;
|
|
32
33
|
}
|
|
33
|
-
declare const Tier: mongoose.Model<
|
|
34
|
-
_id: mongoose.Types.ObjectId;
|
|
35
|
-
}, any>;
|
|
34
|
+
declare const Tier: mongoose.Model<any, {}, {}, {}, any, any>;
|
|
36
35
|
export default Tier;
|
package/dist/src/models/Tier.js
CHANGED
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const mongoose_1 = require("mongoose");
|
|
26
|
+
const mongoose_1 = __importStar(require("mongoose"));
|
|
4
27
|
const TierSchema = new mongoose_1.Schema({
|
|
28
|
+
organizationId: {
|
|
29
|
+
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
30
|
+
ref: "organization",
|
|
31
|
+
default: null,
|
|
32
|
+
},
|
|
5
33
|
name: {
|
|
6
34
|
type: String,
|
|
7
35
|
unique: true,
|
|
@@ -23,5 +51,5 @@ const TierSchema = new mongoose_1.Schema({
|
|
|
23
51
|
default: new Date(),
|
|
24
52
|
},
|
|
25
53
|
});
|
|
26
|
-
const Tier = (0, mongoose_1.model)("tier", TierSchema);
|
|
54
|
+
const Tier = mongoose_1.default.models.tier || (0, mongoose_1.model)("tier", TierSchema);
|
|
27
55
|
exports.default = Tier;
|
|
@@ -29,8 +29,7 @@ export interface ITrigger extends Document {
|
|
|
29
29
|
slug?: string;
|
|
30
30
|
createdAt?: Date;
|
|
31
31
|
updatedAt?: Date;
|
|
32
|
+
organizationId?: mongoose.Schema.Types.ObjectId;
|
|
32
33
|
}
|
|
33
|
-
declare const Trigger: mongoose.Model<
|
|
34
|
-
_id: mongoose.Types.ObjectId;
|
|
35
|
-
}, any>;
|
|
34
|
+
declare const Trigger: mongoose.Model<any, {}, {}, {}, any, any>;
|
|
36
35
|
export default Trigger;
|
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const mongoose_1 = require("mongoose");
|
|
26
|
+
const mongoose_1 = __importStar(require("mongoose"));
|
|
4
27
|
const TriggerSchema = new mongoose_1.Schema({
|
|
28
|
+
organizationId: {
|
|
29
|
+
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
30
|
+
ref: "organization",
|
|
31
|
+
default: null,
|
|
32
|
+
},
|
|
5
33
|
name: {
|
|
6
34
|
type: String,
|
|
7
35
|
},
|
|
@@ -20,5 +48,5 @@ const TriggerSchema = new mongoose_1.Schema({
|
|
|
20
48
|
default: new Date(),
|
|
21
49
|
},
|
|
22
50
|
});
|
|
23
|
-
const Trigger = (0, mongoose_1.model)("trigger", TriggerSchema);
|
|
51
|
+
const Trigger = mongoose_1.default.models.trigger || (0, mongoose_1.model)("trigger", TriggerSchema);
|
|
24
52
|
exports.default = Trigger;
|
|
@@ -35,8 +35,7 @@ export interface IUser extends Document {
|
|
|
35
35
|
createdAt: Date;
|
|
36
36
|
updatedAt: Date;
|
|
37
37
|
resetLink: string;
|
|
38
|
+
organizationId?: mongoose.Schema.Types.ObjectId;
|
|
38
39
|
}
|
|
39
|
-
declare const User: mongoose.Model<
|
|
40
|
-
_id: mongoose.Types.ObjectId;
|
|
41
|
-
}, any>;
|
|
40
|
+
declare const User: mongoose.Model<any, {}, {}, {}, any, any>;
|
|
42
41
|
export default User;
|
package/dist/src/models/User.js
CHANGED
|
@@ -53,18 +53,17 @@ const UserSchema = new mongoose_1.Schema({
|
|
|
53
53
|
type: Boolean,
|
|
54
54
|
default: false,
|
|
55
55
|
},
|
|
56
|
-
|
|
57
|
-
type:
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
updatedAt: {
|
|
61
|
-
type: Date,
|
|
62
|
-
default: new Date(),
|
|
63
|
-
},
|
|
64
|
-
resetLink: {
|
|
65
|
-
type: String,
|
|
56
|
+
organizationId: {
|
|
57
|
+
type: mongoose_1.default.Schema.Types.ObjectId,
|
|
58
|
+
ref: "organization",
|
|
66
59
|
default: null,
|
|
67
60
|
},
|
|
61
|
+
}, {
|
|
62
|
+
timestamps: true
|
|
68
63
|
});
|
|
69
|
-
|
|
64
|
+
// Add compound indexes for common query patterns
|
|
65
|
+
UserSchema.index({ organizationId: 1, role: 1 });
|
|
66
|
+
UserSchema.index({ organizationId: 1, client: 1 });
|
|
67
|
+
UserSchema.index({ email: 1 }, { unique: true });
|
|
68
|
+
const User = mongoose_1.default.models.user || (0, mongoose_1.model)("user", UserSchema);
|
|
70
69
|
exports.default = User;
|
package/index.ts
CHANGED
|
@@ -18,7 +18,6 @@ import ClientRetention from "./src/models/ClientRetention";
|
|
|
18
18
|
import ClientStrategy from "./src/models/ClientStrategy";
|
|
19
19
|
import ClientSurvey from "./src/models/ClientSurvay";
|
|
20
20
|
import CVRReport from "./src/models/CVRReport";
|
|
21
|
-
import Experiments from "./src/models/Experiments";
|
|
22
21
|
import Faq from "./src/models/Faqs";
|
|
23
22
|
import Feedback from "./src/models/Feedback";
|
|
24
23
|
import Goal from "./src/models/Goal";
|
|
@@ -32,6 +31,7 @@ import PageElement from "./src/models/PageElement";
|
|
|
32
31
|
import PageTestType from "./src/models/PageTestType";
|
|
33
32
|
import Portfolio from "./src/models/Portfolio";
|
|
34
33
|
import ReadNotification from "./src/models/ReadNotification";
|
|
34
|
+
import Organization from "./src/models/Organization";
|
|
35
35
|
import Role from "./src/models/Role";
|
|
36
36
|
import SavedSegment from "./src/models/SavedSegment";
|
|
37
37
|
import Segment from "./src/models/Segment";
|
|
@@ -43,9 +43,10 @@ import Temp from "./src/models/Temp";
|
|
|
43
43
|
import Tier from "./src/models/Tier";
|
|
44
44
|
import Trigger from "./src/models/Trigger";
|
|
45
45
|
import ClientScript from "./src/models/ClientScript";
|
|
46
|
-
import ClientExperiment from "./src/models/ClientExperiment";
|
|
47
46
|
import Audience from "./src/models/Audience";
|
|
48
47
|
import Environment from "./src/models/Environment";
|
|
48
|
+
import PrecalculationFilters from "./src/models/PrecalculationFilters";
|
|
49
|
+
import BqPreCompiledData from "./src/models/BqPreCompiledData";
|
|
49
50
|
|
|
50
51
|
async function seedRoles() {
|
|
51
52
|
const checkRoles = await Role.countDocuments();
|
|
@@ -113,7 +114,6 @@ export {
|
|
|
113
114
|
ClientStrategy,
|
|
114
115
|
ClientSurvey,
|
|
115
116
|
CVRReport,
|
|
116
|
-
Experiments,
|
|
117
117
|
Faq,
|
|
118
118
|
Feedback,
|
|
119
119
|
Goal,
|
|
@@ -138,7 +138,9 @@ export {
|
|
|
138
138
|
Tier,
|
|
139
139
|
Trigger,
|
|
140
140
|
ClientScript,
|
|
141
|
-
ClientExperiment,
|
|
142
141
|
Audience,
|
|
143
142
|
Environment,
|
|
143
|
+
Organization,
|
|
144
|
+
PrecalculationFilters,
|
|
145
|
+
BqPreCompiledData,
|
|
144
146
|
};
|
package/package.json
CHANGED
|
@@ -2,48 +2,71 @@ import mongoose, { Document, Schema, model } from "mongoose";
|
|
|
2
2
|
|
|
3
3
|
export interface IAnnouncement extends Document {
|
|
4
4
|
title: string;
|
|
5
|
-
description?:
|
|
6
|
-
active?:
|
|
7
|
-
forRoles?: mongoose.Schema.Types.ObjectId;
|
|
8
|
-
forUsers?: mongoose.Schema.Types.ObjectId;
|
|
9
|
-
readBy?: mongoose.Schema.Types.ObjectId;
|
|
5
|
+
description?: string;
|
|
6
|
+
active?: boolean;
|
|
7
|
+
forRoles?: mongoose.Schema.Types.ObjectId[];
|
|
8
|
+
forUsers?: mongoose.Schema.Types.ObjectId[];
|
|
9
|
+
readBy?: mongoose.Schema.Types.ObjectId[];
|
|
10
|
+
organizationId?: mongoose.Schema.Types.ObjectId;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
const AnnouncementSchema = new Schema<IAnnouncement>(
|
|
13
14
|
{
|
|
14
|
-
|
|
15
|
-
type:
|
|
16
|
-
|
|
15
|
+
organizationId: {
|
|
16
|
+
type: mongoose.Schema.Types.ObjectId,
|
|
17
|
+
ref: "organization",
|
|
18
|
+
default: null,
|
|
17
19
|
},
|
|
18
|
-
|
|
19
|
-
type: String,
|
|
20
|
-
required:
|
|
20
|
+
title: {
|
|
21
|
+
type: String,
|
|
22
|
+
required: true,
|
|
23
|
+
trim: true
|
|
21
24
|
},
|
|
22
|
-
|
|
23
|
-
type:
|
|
24
|
-
|
|
25
|
+
description: {
|
|
26
|
+
type: String,
|
|
27
|
+
trim: true
|
|
25
28
|
},
|
|
26
|
-
|
|
27
|
-
type:
|
|
28
|
-
|
|
29
|
-
ref: "role",
|
|
29
|
+
active: {
|
|
30
|
+
type: Boolean,
|
|
31
|
+
default: true
|
|
30
32
|
},
|
|
31
|
-
|
|
32
|
-
type: [mongoose.Schema.Types.ObjectId],
|
|
33
|
-
required:
|
|
34
|
-
ref: "
|
|
33
|
+
forRoles: {
|
|
34
|
+
type: [mongoose.Schema.Types.ObjectId],
|
|
35
|
+
required: true,
|
|
36
|
+
ref: "role"
|
|
35
37
|
},
|
|
36
|
-
|
|
37
|
-
type: [mongoose.Schema.Types.ObjectId],
|
|
38
|
-
|
|
39
|
-
ref: "user",
|
|
38
|
+
forUsers: {
|
|
39
|
+
type: [mongoose.Schema.Types.ObjectId],
|
|
40
|
+
ref: "user"
|
|
40
41
|
},
|
|
42
|
+
readBy: {
|
|
43
|
+
type: [mongoose.Schema.Types.ObjectId],
|
|
44
|
+
ref: "user"
|
|
45
|
+
}
|
|
41
46
|
},
|
|
42
47
|
{
|
|
43
|
-
timestamps: true
|
|
48
|
+
timestamps: true
|
|
44
49
|
}
|
|
45
50
|
);
|
|
46
51
|
|
|
47
|
-
|
|
52
|
+
// Add compound indexes for better query performance
|
|
53
|
+
AnnouncementSchema.index({ active: 1, createdAt: -1 }); // For active announcements sorted by date
|
|
54
|
+
AnnouncementSchema.index({ forRoles: 1, active: 1 }); // For role-based announcements
|
|
55
|
+
AnnouncementSchema.index({ forUsers: 1, active: 1 }); // For user-specific announcements
|
|
56
|
+
AnnouncementSchema.index({ readBy: 1 }); // For tracking read status
|
|
57
|
+
AnnouncementSchema.index({ title: 1 }, { collation: { locale: 'en', strength: 2 } }); // Case-insensitive title search
|
|
58
|
+
|
|
59
|
+
// Add text index for full-text search
|
|
60
|
+
// AnnouncementSchema.index({
|
|
61
|
+
// title: 'text',
|
|
62
|
+
// description: 'text'
|
|
63
|
+
// }, {
|
|
64
|
+
// weights: {
|
|
65
|
+
// title: 10,
|
|
66
|
+
// description: 5
|
|
67
|
+
// }
|
|
68
|
+
// });
|
|
69
|
+
|
|
70
|
+
const Announcement = mongoose.models.announcement || model<IAnnouncement>("announcement", AnnouncementSchema);
|
|
48
71
|
|
|
49
72
|
export default Announcement;
|
package/src/models/AppEvent.ts
CHANGED