codebase-models 1.0.6 → 2.0.0

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 (145) hide show
  1. package/.github/workflows/npm-publish.yml +33 -0
  2. package/dist/index.d.ts +5 -4
  3. package/dist/index.js +20 -11
  4. package/dist/src/models/Announcement.d.ts +6 -5
  5. package/dist/src/models/Announcement.js +29 -9
  6. package/dist/src/models/Audience.d.ts +2 -1
  7. package/dist/src/models/Audience.js +6 -1
  8. package/dist/src/models/{Experiments.d.ts → BqPreCompiledData.d.ts} +12 -30
  9. package/dist/src/models/{ClientExperiment.js → BqPreCompiledData.js} +26 -46
  10. package/dist/src/models/CVRReport.d.ts +1 -0
  11. package/dist/src/models/CVRReport.js +13 -0
  12. package/dist/src/models/Client.d.ts +3 -1
  13. package/dist/src/models/Client.js +31 -45
  14. package/dist/src/models/ClientAdditionalRevenue.d.ts +1 -1
  15. package/dist/src/models/ClientAdditionalRevenue.js +3 -2
  16. package/dist/src/models/ClientLearning.d.ts +1 -1
  17. package/dist/src/models/ClientLearning.js +10 -6
  18. package/dist/src/models/ClientLinks.d.ts +1 -1
  19. package/dist/src/models/ClientLinks.js +15 -6
  20. package/dist/src/models/ClientNextSteps.d.ts +1 -1
  21. package/dist/src/models/ClientNextSteps.js +3 -2
  22. package/dist/src/models/ClientNote.d.ts +1 -1
  23. package/dist/src/models/ClientNote.js +3 -2
  24. package/dist/src/models/ClientReportsTemp.d.ts +1 -1
  25. package/dist/src/models/ClientReportsTemp.js +20 -2
  26. package/dist/src/models/ClientRetention.d.ts +1 -0
  27. package/dist/src/models/ClientRetention.js +25 -0
  28. package/dist/src/models/ClientScript.d.ts +1 -1
  29. package/dist/src/models/ClientScript.js +24 -8
  30. package/dist/src/models/ClientStrategy.d.ts +1 -1
  31. package/dist/src/models/ClientStrategy.js +3 -2
  32. package/dist/src/models/ClientSurvay.d.ts +1 -0
  33. package/dist/src/models/ClientSurvay.js +5 -0
  34. package/dist/src/models/Environment.d.ts +2 -0
  35. package/dist/src/models/Environment.js +26 -2
  36. package/dist/src/models/Faqs.d.ts +1 -0
  37. package/dist/src/models/Faqs.js +5 -0
  38. package/dist/src/models/Feedback.d.ts +1 -1
  39. package/dist/src/models/Feedback.js +3 -2
  40. package/dist/src/models/Goal.d.ts +2 -1
  41. package/dist/src/models/Goal.js +33 -11
  42. package/dist/src/models/Hypothesis.d.ts +2 -0
  43. package/dist/src/models/Hypothesis.js +49 -9
  44. package/dist/src/models/HypothesisSheet.d.ts +1 -1
  45. package/dist/src/models/HypothesisSheet.js +26 -2
  46. package/dist/src/models/LandingPages.d.ts +3 -0
  47. package/dist/src/models/LandingPages.js +29 -0
  48. package/dist/src/models/NewIdeas.d.ts +1 -1
  49. package/dist/src/models/NewIdeas.js +3 -2
  50. package/dist/src/models/Notification.d.ts +1 -0
  51. package/dist/src/models/Notification.js +29 -1
  52. package/dist/src/models/{ClientExperiment.d.ts → Organization.d.ts} +18 -29
  53. package/dist/src/models/{Experiments.js → Organization.js} +36 -54
  54. package/dist/src/models/Page.d.ts +3 -1
  55. package/dist/src/models/Page.js +56 -4
  56. package/dist/src/models/PageElement.d.ts +3 -0
  57. package/dist/src/models/PageElement.js +59 -7
  58. package/dist/src/models/PageTestType.d.ts +2 -0
  59. package/dist/src/models/PageTestType.js +41 -5
  60. package/dist/src/models/Portfolio.d.ts +1 -0
  61. package/dist/src/models/Portfolio.js +5 -0
  62. package/dist/src/models/PrecalculationFilters.d.ts +36 -0
  63. package/dist/src/models/PrecalculationFilters.js +77 -0
  64. package/dist/src/models/QueryLog.d.ts +1 -1
  65. package/dist/src/models/QueryLog.js +3 -2
  66. package/dist/src/models/ReadNotification.d.ts +1 -0
  67. package/dist/src/models/ReadNotification.js +29 -1
  68. package/dist/src/models/Report.d.ts +2 -0
  69. package/dist/src/models/Report.js +35 -47
  70. package/dist/src/models/Role.d.ts +3 -0
  71. package/dist/src/models/Role.js +50 -7
  72. package/dist/src/models/SavedSegment.d.ts +1 -0
  73. package/dist/src/models/SavedSegment.js +5 -0
  74. package/dist/src/models/Segment.d.ts +1 -0
  75. package/dist/src/models/Segment.js +5 -0
  76. package/dist/src/models/SegmentCombination.d.ts +1 -0
  77. package/dist/src/models/SegmentCombination.js +5 -0
  78. package/dist/src/models/Snippet.d.ts +2 -1
  79. package/dist/src/models/Snippet.js +28 -3
  80. package/dist/src/models/StageInCustomerJourney.d.ts +3 -1
  81. package/dist/src/models/StageInCustomerJourney.js +56 -4
  82. package/dist/src/models/Tag.d.ts +1 -0
  83. package/dist/src/models/Tag.js +29 -1
  84. package/dist/src/models/Temp.d.ts +1 -0
  85. package/dist/src/models/Temp.js +29 -1
  86. package/dist/src/models/Test.d.ts +18 -17
  87. package/dist/src/models/Test.js +82 -185
  88. package/dist/src/models/TestSequentialValue.d.ts +1 -0
  89. package/dist/src/models/TestSequentialValue.js +5 -0
  90. package/dist/src/models/Tier.d.ts +1 -0
  91. package/dist/src/models/Tier.js +29 -1
  92. package/dist/src/models/Trigger.d.ts +1 -0
  93. package/dist/src/models/Trigger.js +29 -1
  94. package/dist/src/models/User.d.ts +1 -0
  95. package/dist/src/models/User.js +9 -10
  96. package/index.ts +6 -4
  97. package/package.json +1 -1
  98. package/src/models/Announcement.ts +50 -27
  99. package/src/models/Audience.ts +6 -0
  100. package/src/models/BqPreCompiledData.ts +62 -0
  101. package/src/models/CVRReport.ts +17 -0
  102. package/src/models/Client.ts +39 -59
  103. package/src/models/ClientAdditionalRevenue.ts +4 -3
  104. package/src/models/ClientLearning.ts +11 -7
  105. package/src/models/ClientLinks.ts +18 -7
  106. package/src/models/ClientNextSteps.ts +4 -3
  107. package/src/models/ClientNote.ts +4 -3
  108. package/src/models/ClientReportsTemp.ts +24 -3
  109. package/src/models/ClientRetention.ts +27 -1
  110. package/src/models/ClientScript.ts +26 -9
  111. package/src/models/ClientStrategy.ts +4 -3
  112. package/src/models/ClientSurvay.ts +6 -0
  113. package/src/models/Environment.ts +31 -3
  114. package/src/models/Faqs.ts +6 -0
  115. package/src/models/Feedback.ts +4 -3
  116. package/src/models/Goal.ts +36 -12
  117. package/src/models/Hypothesis.ts +29 -8
  118. package/src/models/HypothesisSheet.ts +3 -2
  119. package/src/models/LandingPages.ts +34 -0
  120. package/src/models/NewIdeas.ts +4 -3
  121. package/src/models/Notification.ts +6 -0
  122. package/src/models/Organization.ts +86 -0
  123. package/src/models/Page.ts +62 -5
  124. package/src/models/PageElement.ts +38 -7
  125. package/src/models/PageTestType.ts +21 -4
  126. package/src/models/Portfolio.ts +6 -0
  127. package/src/models/PrecalculationFilters.ts +67 -0
  128. package/src/models/QueryLog.ts +4 -3
  129. package/src/models/ReadNotification.ts +6 -0
  130. package/src/models/Report.ts +54 -66
  131. package/src/models/Role.ts +31 -6
  132. package/src/models/SavedSegment.ts +6 -0
  133. package/src/models/Segment.ts +6 -0
  134. package/src/models/SegmentCombination.ts +6 -0
  135. package/src/models/Snippet.ts +32 -4
  136. package/src/models/StageInCustomerJourney.ts +33 -5
  137. package/src/models/Tag.ts +6 -0
  138. package/src/models/Temp.ts +6 -0
  139. package/src/models/Test.ts +155 -243
  140. package/src/models/TestSequentialValue.ts +6 -0
  141. package/src/models/Tier.ts +6 -0
  142. package/src/models/Trigger.ts +6 -0
  143. package/src/models/User.ts +11 -10
  144. package/src/models/ClientExperiment.ts +0 -113
  145. package/src/models/Experiments.ts +0 -118
@@ -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
  },
@@ -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
  },
@@ -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
 
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
+
76
104
  const 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
 
56
+ // Compound indexes for common query patterns
57
+ // StageInCustomerJourneySchema.index({ client: 1, slug: 1 });
30
58
  const 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,
@@ -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
  },