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.
Files changed (148) hide show
  1. package/.github/workflows/npm-publish.yml +33 -0
  2. package/dist/index.d.ts +4 -3
  3. package/dist/index.js +7 -5
  4. package/dist/src/models/Announcement.d.ts +7 -8
  5. package/dist/src/models/Announcement.js +30 -10
  6. package/dist/src/models/AppEvent.d.ts +1 -3
  7. package/dist/src/models/AppEvent.js +1 -1
  8. package/dist/src/models/Audience.d.ts +2 -3
  9. package/dist/src/models/Audience.js +6 -1
  10. package/dist/src/models/{Experiments.d.ts → BqPreCompiledData.d.ts} +12 -32
  11. package/dist/src/models/{ClientExperiment.js → BqPreCompiledData.js} +26 -46
  12. package/dist/src/models/CVRReport.d.ts +2 -3
  13. package/dist/src/models/CVRReport.js +14 -1
  14. package/dist/src/models/Client.d.ts +2 -4
  15. package/dist/src/models/Client.js +32 -52
  16. package/dist/src/models/ClientAdditionalRevenue.d.ts +2 -4
  17. package/dist/src/models/ClientAdditionalRevenue.js +4 -3
  18. package/dist/src/models/ClientLearning.d.ts +2 -4
  19. package/dist/src/models/ClientLearning.js +11 -7
  20. package/dist/src/models/ClientLinks.d.ts +2 -4
  21. package/dist/src/models/ClientLinks.js +16 -7
  22. package/dist/src/models/ClientNextSteps.d.ts +2 -4
  23. package/dist/src/models/ClientNextSteps.js +4 -3
  24. package/dist/src/models/ClientNote.d.ts +2 -4
  25. package/dist/src/models/ClientNote.js +4 -3
  26. package/dist/src/models/ClientReportsTemp.d.ts +2 -4
  27. package/dist/src/models/ClientReportsTemp.js +21 -3
  28. package/dist/src/models/ClientRetention.d.ts +2 -3
  29. package/dist/src/models/ClientRetention.js +19 -1
  30. package/dist/src/models/ClientScript.d.ts +2 -4
  31. package/dist/src/models/ClientScript.js +25 -9
  32. package/dist/src/models/ClientStrategy.d.ts +2 -4
  33. package/dist/src/models/ClientStrategy.js +4 -3
  34. package/dist/src/models/ClientSurvay.d.ts +2 -7
  35. package/dist/src/models/ClientSurvay.js +6 -1
  36. package/dist/src/models/Environment.d.ts +3 -3
  37. package/dist/src/models/Environment.js +27 -3
  38. package/dist/src/models/Faqs.d.ts +2 -3
  39. package/dist/src/models/Faqs.js +6 -1
  40. package/dist/src/models/Feedback.d.ts +2 -4
  41. package/dist/src/models/Feedback.js +4 -3
  42. package/dist/src/models/Goal.d.ts +3 -4
  43. package/dist/src/models/Goal.js +34 -12
  44. package/dist/src/models/Hypothesis.d.ts +3 -3
  45. package/dist/src/models/Hypothesis.js +50 -10
  46. package/dist/src/models/HypothesisSheet.d.ts +2 -4
  47. package/dist/src/models/HypothesisSheet.js +27 -3
  48. package/dist/src/models/LandingPages.d.ts +4 -3
  49. package/dist/src/models/LandingPages.js +30 -1
  50. package/dist/src/models/NewIdeas.d.ts +2 -4
  51. package/dist/src/models/NewIdeas.js +4 -3
  52. package/dist/src/models/Notification.d.ts +2 -3
  53. package/dist/src/models/Notification.js +30 -2
  54. package/dist/src/models/{ClientExperiment.d.ts → Organization.d.ts} +18 -31
  55. package/dist/src/models/{Experiments.js → Organization.js} +36 -54
  56. package/dist/src/models/Page.d.ts +4 -4
  57. package/dist/src/models/Page.js +57 -5
  58. package/dist/src/models/PageElement.d.ts +4 -3
  59. package/dist/src/models/PageElement.js +60 -8
  60. package/dist/src/models/PageTestType.d.ts +3 -3
  61. package/dist/src/models/PageTestType.js +42 -6
  62. package/dist/src/models/Portfolio.d.ts +2 -3
  63. package/dist/src/models/Portfolio.js +6 -1
  64. package/dist/src/models/PrecalculationFilters.d.ts +34 -0
  65. package/dist/src/models/PrecalculationFilters.js +78 -0
  66. package/dist/src/models/QueryLog.d.ts +2 -4
  67. package/dist/src/models/QueryLog.js +4 -3
  68. package/dist/src/models/ReadNotification.d.ts +2 -3
  69. package/dist/src/models/ReadNotification.js +30 -2
  70. package/dist/src/models/Report.d.ts +3 -4
  71. package/dist/src/models/Report.js +33 -49
  72. package/dist/src/models/Role.d.ts +4 -3
  73. package/dist/src/models/Role.js +51 -8
  74. package/dist/src/models/SavedSegment.d.ts +2 -3
  75. package/dist/src/models/SavedSegment.js +6 -1
  76. package/dist/src/models/Segment.d.ts +2 -3
  77. package/dist/src/models/Segment.js +6 -1
  78. package/dist/src/models/SegmentCombination.d.ts +2 -3
  79. package/dist/src/models/SegmentCombination.js +6 -1
  80. package/dist/src/models/Snippet.d.ts +3 -4
  81. package/dist/src/models/Snippet.js +29 -4
  82. package/dist/src/models/StageInCustomerJourney.d.ts +4 -4
  83. package/dist/src/models/StageInCustomerJourney.js +56 -4
  84. package/dist/src/models/Tag.d.ts +2 -3
  85. package/dist/src/models/Tag.js +30 -2
  86. package/dist/src/models/Temp.d.ts +2 -3
  87. package/dist/src/models/Temp.js +30 -2
  88. package/dist/src/models/Test.d.ts +17 -18
  89. package/dist/src/models/Test.js +83 -186
  90. package/dist/src/models/TestSequentialValue.d.ts +2 -3
  91. package/dist/src/models/TestSequentialValue.js +6 -1
  92. package/dist/src/models/Tier.d.ts +2 -3
  93. package/dist/src/models/Tier.js +30 -2
  94. package/dist/src/models/Trigger.d.ts +2 -3
  95. package/dist/src/models/Trigger.js +30 -2
  96. package/dist/src/models/User.d.ts +2 -3
  97. package/dist/src/models/User.js +10 -11
  98. package/index.ts +6 -4
  99. package/package.json +1 -1
  100. package/src/models/Announcement.ts +51 -28
  101. package/src/models/AppEvent.ts +1 -1
  102. package/src/models/Audience.ts +7 -1
  103. package/src/models/BqPreCompiledData.ts +62 -0
  104. package/src/models/CVRReport.ts +18 -1
  105. package/src/models/Client.ts +40 -60
  106. package/src/models/ClientAdditionalRevenue.ts +5 -4
  107. package/src/models/ClientLearning.ts +12 -8
  108. package/src/models/ClientLinks.ts +19 -8
  109. package/src/models/ClientNextSteps.ts +5 -4
  110. package/src/models/ClientNote.ts +5 -4
  111. package/src/models/ClientReportsTemp.ts +25 -4
  112. package/src/models/ClientRetention.ts +28 -2
  113. package/src/models/ClientScript.ts +27 -10
  114. package/src/models/ClientStrategy.ts +5 -4
  115. package/src/models/ClientSurvay.ts +7 -1
  116. package/src/models/Environment.ts +32 -4
  117. package/src/models/Faqs.ts +7 -1
  118. package/src/models/Feedback.ts +5 -4
  119. package/src/models/Goal.ts +37 -13
  120. package/src/models/Hypothesis.ts +30 -9
  121. package/src/models/HypothesisSheet.ts +4 -3
  122. package/src/models/LandingPages.ts +35 -1
  123. package/src/models/NewIdeas.ts +5 -4
  124. package/src/models/Notification.ts +7 -1
  125. package/src/models/Organization.ts +86 -0
  126. package/src/models/Page.ts +63 -6
  127. package/src/models/PageElement.ts +39 -8
  128. package/src/models/PageTestType.ts +22 -5
  129. package/src/models/Portfolio.ts +7 -1
  130. package/src/models/PrecalculationFilters.ts +68 -0
  131. package/src/models/QueryLog.ts +5 -4
  132. package/src/models/ReadNotification.ts +7 -1
  133. package/src/models/Report.ts +55 -67
  134. package/src/models/Role.ts +32 -7
  135. package/src/models/SavedSegment.ts +7 -1
  136. package/src/models/Segment.ts +7 -1
  137. package/src/models/SegmentCombination.ts +7 -1
  138. package/src/models/Snippet.ts +33 -5
  139. package/src/models/StageInCustomerJourney.ts +34 -6
  140. package/src/models/Tag.ts +7 -1
  141. package/src/models/Temp.ts +7 -1
  142. package/src/models/Test.ts +156 -244
  143. package/src/models/TestSequentialValue.ts +7 -1
  144. package/src/models/Tier.ts +7 -1
  145. package/src/models/Trigger.ts +7 -1
  146. package/src/models/User.ts +12 -11
  147. package/src/models/ClientExperiment.ts +0 -113
  148. package/src/models/Experiments.ts +0 -118
@@ -4,6 +4,7 @@ export interface ISavedSegment extends Document {
4
4
  test?: mongoose.Schema.Types.ObjectId;
5
5
  segment?: mongoose.Schema.Types.ObjectId;
6
6
  segmentFilters?: mongoose.Schema.Types.Mixed;
7
+ organizationId?: mongoose.Schema.Types.ObjectId;
7
8
  }
8
9
 
9
10
  const SavedSegmentSchema = new Schema<ISavedSegment>(
@@ -20,12 +21,17 @@ const SavedSegmentSchema = new Schema<ISavedSegment>(
20
21
  type: mongoose.Schema.Types.Mixed,
21
22
  default: null,
22
23
  },
24
+ organizationId: {
25
+ type: mongoose.Schema.Types.ObjectId,
26
+ ref: "organization",
27
+ default: null,
28
+ },
23
29
  },
24
30
  {
25
31
  timestamps: true,
26
32
  }
27
33
  );
28
34
 
29
- const SavedSegment = model<ISavedSegment>("savedsegment", SavedSegmentSchema);
35
+ const SavedSegment = mongoose.models.savedsegment || model<ISavedSegment>("savedsegment", SavedSegmentSchema);
30
36
 
31
37
  export default SavedSegment;
@@ -7,10 +7,16 @@ export interface ISegment extends Document {
7
7
  segmentType?: string;
8
8
  client?: mongoose.Schema.Types.ObjectId;
9
9
  published?: boolean;
10
+ organizationId?: mongoose.Schema.Types.ObjectId;
10
11
  }
11
12
 
12
13
  const SegmentSchema = new Schema<ISegment>(
13
14
  {
15
+ organizationId: {
16
+ type: mongoose.Schema.Types.ObjectId,
17
+ ref: "organization",
18
+ default: null,
19
+ },
14
20
  name: {
15
21
  type: String,
16
22
  },
@@ -39,6 +45,6 @@ const SegmentSchema = new Schema<ISegment>(
39
45
  }
40
46
  );
41
47
 
42
- const Segment = model<ISegment>("segment", SegmentSchema);
48
+ const Segment = mongoose.models.segment || model<ISegment>("segment", SegmentSchema);
43
49
 
44
50
  export default Segment;
@@ -11,9 +11,15 @@ export interface ISegmentCombination extends Document {
11
11
  order?: Number;
12
12
  createdAt?: Date;
13
13
  updatedAt?: Date;
14
+ organizationId?: mongoose.Schema.Types.ObjectId;
14
15
  }
15
16
 
16
17
  const SegmentSchema = new Schema<ISegmentCombination>({
18
+ organizationId: {
19
+ type: mongoose.Schema.Types.ObjectId,
20
+ ref: "organization",
21
+ default: null,
22
+ },
17
23
  name: {
18
24
  type: String,
19
25
  },
@@ -54,7 +60,7 @@ const SegmentSchema = new Schema<ISegmentCombination>({
54
60
  },
55
61
  });
56
62
 
57
- const SegmentCombination = model<ISegmentCombination>(
63
+ const SegmentCombination = mongoose.models.segmentcombination || model<ISegmentCombination>(
58
64
  "segmentcombination",
59
65
  SegmentSchema
60
66
  );
@@ -1,7 +1,6 @@
1
1
  import mongoose, { Document, Schema, model } from "mongoose";
2
2
 
3
3
  export interface ISnippet extends Document {
4
- organisationId?: string;
5
4
  name?: string;
6
5
  pageelement?: mongoose.Schema.Types.ObjectId[];
7
6
  client?: mongoose.Schema.Types.ObjectId;
@@ -13,66 +12,95 @@ export interface ISnippet extends Document {
13
12
  jscode?: string;
14
13
  test?: mongoose.Schema.Types.ObjectId;
15
14
  status?: string;
15
+ isActive?: boolean;
16
+ organizationId?: mongoose.Schema.Types.ObjectId;
16
17
  }
17
18
 
18
19
  const SnippetSchema = new Schema<ISnippet>(
19
20
  {
20
- organisationId: {
21
- type: String,
21
+ organizationId: {
22
+ type: mongoose.Schema.Types.ObjectId,
23
+ ref: "organization",
22
24
  default: null,
25
+ index: true,
23
26
  },
24
27
  name: {
25
28
  type: String,
26
29
  required: true,
27
30
  unique: true,
31
+ trim: true,
32
+ index: true,
28
33
  },
29
34
  pageelement: {
30
35
  type: [mongoose.Schema.Types.ObjectId],
31
36
  ref: "pageelement",
32
37
  default: [],
38
+ index: true,
33
39
  },
34
40
  client: {
35
41
  type: mongoose.Schema.Types.ObjectId,
36
42
  ref: "client",
43
+ required: true,
44
+ index: true,
37
45
  },
38
46
  details: {
39
47
  type: String,
40
48
  default: "",
49
+ trim: true,
41
50
  },
42
51
  figmaUrl: {
43
52
  type: String,
53
+ trim: true,
44
54
  },
45
55
  tags: {
46
56
  type: [mongoose.Schema.Types.ObjectId],
47
57
  ref: "tag",
48
58
  default: [],
59
+ index: true,
49
60
  },
50
61
  htmlcode: {
51
62
  type: String,
52
63
  default: "",
64
+ trim: true,
53
65
  },
54
66
  csscode: {
55
67
  type: String,
68
+ trim: true,
56
69
  },
57
70
  jscode: {
58
71
  type: String,
59
72
  default: "",
73
+ trim: true,
60
74
  },
61
75
  test: {
62
76
  type: mongoose.Schema.Types.ObjectId,
63
77
  ref: "test",
78
+ index: true,
64
79
  },
65
80
  status: {
66
81
  type: String,
67
82
  default: "live",
68
- enum: ["live", "draft"],
83
+ enum: ["live", "draft","running","paused","preview","ended"],
84
+ index: true,
69
85
  },
86
+ isActive: {
87
+ type: Boolean,
88
+ default: true,
89
+ index: true,
90
+ }
70
91
  },
71
92
  {
72
93
  timestamps: true,
73
94
  }
74
95
  );
75
96
 
76
- const Snippet = model<ISnippet>("snippet", SnippetSchema);
97
+ // Compound indexes for common query patterns
98
+ SnippetSchema.index({ client: 1, name: 1 }, { unique: true });
99
+ SnippetSchema.index({ organisationId: 1, client: 1 });
100
+ SnippetSchema.index({ client: 1, tags: 1 });
101
+ SnippetSchema.index({ client: 1, pageelement: 1 });
102
+
103
+
104
+ const Snippet = mongoose.models.snippet || model<ISnippet>("snippet", SnippetSchema);
77
105
 
78
106
  export default Snippet;
@@ -1,35 +1,63 @@
1
- import mongoose, { Document, Schema, model } from "mongoose";
1
+ import mongoose, { Document, Mongoose, Schema, model } from "mongoose";
2
+ import slug from "mongoose-slug-updater"
3
+ mongoose.plugin(slug)
2
4
 
3
5
  export interface IStageInCustomerJourney extends Document {
4
6
  name?: string;
5
7
  stages?: string;
6
8
  slug?: string;
7
- organizationId?: string;
9
+ organizationId?: mongoose.Schema.Types.ObjectId;
10
+ client?: mongoose.Schema.Types.ObjectId;
11
+ isActive?: boolean;
8
12
  }
9
13
 
10
- const StateInCustomerJourney = new Schema<IStageInCustomerJourney>(
14
+ const StageInCustomerJourneySchema = new Schema<IStageInCustomerJourney>(
11
15
  {
12
16
  name: {
13
17
  type: String,
18
+ required: true,
19
+ trim: true,
20
+ index: true,
14
21
  },
15
22
  stages: {
16
23
  type: String,
24
+ required: true,
25
+ trim: true,
17
26
  },
18
27
  slug: {
19
28
  type: String,
29
+ slug: ["name"],
30
+ slugPaddingSize: 4,
31
+ unique: true,
32
+ trim: true,
20
33
  },
21
34
  organizationId: {
22
- type: String,
35
+ type: mongoose.Schema.Types.ObjectId,
36
+ default: null,
37
+ ref: "organization",
38
+ index: true,
39
+ },
40
+ client: {
41
+ type: mongoose.Schema.Types.ObjectId,
42
+ ref: "client",
43
+ index: true,
23
44
  },
45
+ isActive: {
46
+ type: Boolean,
47
+ default: true,
48
+ index: true,
49
+ }
24
50
  },
25
51
  {
26
52
  timestamps: true,
27
53
  }
28
54
  );
29
55
 
30
- const StageInCustomerJourney = model<IStageInCustomerJourney>(
56
+ // Compound indexes for common query patterns
57
+ // StageInCustomerJourneySchema.index({ client: 1, slug: 1 });
58
+ const StageInCustomerJourney = mongoose.models.stageincustomerjourney || model<IStageInCustomerJourney>(
31
59
  "stageincustomerjourney",
32
- StateInCustomerJourney
60
+ StageInCustomerJourneySchema
33
61
  );
34
62
 
35
63
  export default StageInCustomerJourney;
package/src/models/Tag.ts CHANGED
@@ -4,9 +4,15 @@ export interface ITag extends Document {
4
4
  name: string;
5
5
  createdAt?: Date;
6
6
  updatedAt?: Date;
7
+ organizationId?: mongoose.Schema.Types.ObjectId;
7
8
  }
8
9
 
9
10
  const TagSchema = new Schema<ITag>({
11
+ organizationId: {
12
+ type: mongoose.Schema.Types.ObjectId,
13
+ ref: "organization",
14
+ default: null,
15
+ },
10
16
  name: {
11
17
  type: String,
12
18
  unique: true,
@@ -22,6 +28,6 @@ const TagSchema = new Schema<ITag>({
22
28
  },
23
29
  });
24
30
 
25
- const Tag = model<ITag>("tag", TagSchema);
31
+ const Tag = mongoose.models.tag || model<ITag>("tag", TagSchema);
26
32
 
27
33
  export default Tag;
@@ -5,9 +5,15 @@ export interface ITemp extends Document {
5
5
  userId: string;
6
6
  enabled?: boolean;
7
7
  createdAt?: Date;
8
+ organizationId?: mongoose.Schema.Types.ObjectId;
8
9
  }
9
10
 
10
11
  const TempSchema = new Schema<ITemp>({
12
+ organizationId: {
13
+ type: mongoose.Schema.Types.ObjectId,
14
+ ref: "organization",
15
+ default: null,
16
+ },
11
17
  secret: {
12
18
  type: String,
13
19
  },
@@ -25,6 +31,6 @@ const TempSchema = new Schema<ITemp>({
25
31
  },
26
32
  });
27
33
 
28
- const Temp = model<ITemp>("temp", TempSchema);
34
+ const Temp = mongoose.models.temp || model<ITemp>("temp", TempSchema);
29
35
 
30
36
  export default Temp;