shuttlepro-shared 1.3.30 → 1.3.31

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 (55) hide show
  1. package/models/Activity.js +28 -0
  2. package/models/AgentActivity.js +5 -2
  3. package/models/Attribute.js +130 -0
  4. package/models/Automation.js +238 -0
  5. package/models/Card.js +50 -1
  6. package/models/Catalogue.js +22 -0
  7. package/models/Category.js +129 -0
  8. package/models/ChatMemberSession.js +21 -0
  9. package/models/ChatMessage.js +43 -0
  10. package/models/Color.js +10 -0
  11. package/models/Column.js +6 -0
  12. package/models/Conversation.js +1 -0
  13. package/models/Customer.js +2 -2
  14. package/models/DeviceInfo.js +13 -0
  15. package/models/EscalationConfiguration.js +123 -0
  16. package/models/EscalationManager.js +50 -0
  17. package/models/Faq.js +29 -0
  18. package/models/FeedbackResponse.js +72 -0
  19. package/models/FormTemplate.js +27 -0
  20. package/models/Integration.js +6 -0
  21. package/models/InternalComments.js +27 -0
  22. package/models/InternalThreads.js +20 -0
  23. package/models/JobDesign.js +32 -0
  24. package/models/JobQueue.js +17 -0
  25. package/models/LabelsPdf.js +12 -0
  26. package/models/Layout.js +12 -0
  27. package/models/Location.js +147 -0
  28. package/models/Logo.js +11 -0
  29. package/models/Notification.js +32 -0
  30. package/models/OrderPdf.js +29 -0
  31. package/models/PostsAutomation.js +66 -0
  32. package/models/Product.js +336 -0
  33. package/models/ProductAttachment.js +158 -0
  34. package/models/ProductAttribute.js +140 -0
  35. package/models/ProductCategory.js +128 -0
  36. package/models/ProductLabels.js +11 -0
  37. package/models/ProductShopify.js +13 -0
  38. package/models/ProductTag.js +124 -0
  39. package/models/ProductVariant.js +156 -0
  40. package/models/ServiceUsage.js +26 -0
  41. package/models/ShipperSetting.js +24 -0
  42. package/models/SocialGroup.js +127 -0
  43. package/models/SocialPost.js +40 -0
  44. package/models/SocialProfile.js +57 -0
  45. package/models/Tag.js +77 -0
  46. package/models/Template.js +76 -0
  47. package/models/TemplateFrame.js +37 -0
  48. package/models/TemplateTag.js +10 -0
  49. package/models/UserSession.js +47 -0
  50. package/models/VariantLocation.js +145 -0
  51. package/models/WhatsappFlow.js +0 -0
  52. package/models/Workflow.js +34 -0
  53. package/models/Workspace.js +3 -0
  54. package/models.js +148 -49
  55. package/package.json +1 -1
@@ -0,0 +1,127 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+
4
+ const SocialGroupSchema = new mongoose.Schema(
5
+ {
6
+ name: { type: String, default: "" },
7
+ products: [
8
+ {
9
+ productId: {
10
+ type: Schema.Types.ObjectId,
11
+ ref: "Product",
12
+ },
13
+ orderNo: {
14
+ type: String,
15
+ default: "",
16
+ },
17
+ },
18
+ ],
19
+ deletedArr: [],
20
+ productCount: { type: String, default: "" },
21
+ workspaceId: {
22
+ type: Schema.Types.ObjectId,
23
+ ref: "Workspace",
24
+ default: null,
25
+ },
26
+ isDeleted: { type: Boolean, default: false },
27
+ createdBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
28
+ updatedBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
29
+ },
30
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
31
+ );
32
+
33
+ const SocialGroup = mongoose.model("SocialGroup", SocialGroupSchema);
34
+
35
+ const createNewSocialGroup = async (socialGroupData) => {
36
+ try {
37
+ return await SocialGroup.create(socialGroupData);
38
+ } catch (error) {
39
+ console.log(error);
40
+ return null;
41
+ }
42
+ };
43
+
44
+ const findSocialGroupById = async (socialGroupId) => {
45
+ try {
46
+ return await SocialGroup.findById(socialGroupId);
47
+ } catch (error) {
48
+ console.log(error);
49
+ return null;
50
+ }
51
+ };
52
+
53
+ const updateSocialGroupById = async (criteria, updateData, options = {}) => {
54
+ try {
55
+ return await SocialGroup.findByIdAndUpdate(criteria, updateData, options);
56
+ } catch (error) {
57
+ console.log(error);
58
+ return null;
59
+ }
60
+ };
61
+
62
+ const deleteSocialGroupById = async (socialGroupId) => {
63
+ try {
64
+ return await SocialGroup.findByIdAndDelete(socialGroupId);
65
+ } catch (error) {
66
+ console.log(error);
67
+ return null;
68
+ }
69
+ };
70
+
71
+ const findSocialGroup = async (criteria, selectFields, populateOptions) => {
72
+ try {
73
+ let query = SocialGroup.findOne(criteria);
74
+
75
+ if (selectFields) {
76
+ query = query.select(selectFields);
77
+ }
78
+
79
+ if (populateOptions) {
80
+ query = query.populate(populateOptions);
81
+ }
82
+
83
+ return await query.exec();
84
+ } catch (error) {
85
+ console.error(error);
86
+ return null;
87
+ }
88
+ };
89
+
90
+ const findSocialGroups = async (criteria) => {
91
+ try {
92
+ return await SocialGroup.find(criteria);
93
+ } catch (error) {
94
+ console.log(error);
95
+ return null;
96
+ }
97
+ };
98
+
99
+ const socialGroupByAggregation = async (pipeline) => {
100
+ try {
101
+ return await SocialGroup.aggregate(pipeline);
102
+ } catch (error) {
103
+ console.log(error);
104
+ return null;
105
+ }
106
+ };
107
+
108
+ const socialGroupUpdateMany = async (criteria, updateData, options = {}) => {
109
+ try {
110
+ return await SocialGroup.updateMany(criteria, updateData, options);
111
+ } catch (error) {
112
+ console.log(error);
113
+ return null;
114
+ }
115
+ };
116
+
117
+ module.exports = {
118
+ SocialGroup,
119
+ createNewSocialGroup,
120
+ findSocialGroupById,
121
+ updateSocialGroupById,
122
+ deleteSocialGroupById,
123
+ findSocialGroup,
124
+ findSocialGroups,
125
+ socialGroupByAggregation,
126
+ socialGroupUpdateMany,
127
+ };
@@ -0,0 +1,40 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+
4
+ const SocialPostSchema = new Schema(
5
+ {
6
+ type: { type: String, default: "single" },
7
+ postType: { type: String, default: "post" },
8
+ platformType: { type: String, default: "facebook" },
9
+ isScheduledPost: { type: Boolean, default: false },
10
+ workspaceId: {
11
+ type: Schema.Types.ObjectId,
12
+ ref: "Workspace",
13
+ default: null,
14
+ },
15
+ pageId: { type: String, default: "" },
16
+ pageName: { type: String, default: "" },
17
+ pageLogo: { type: String, default: "" },
18
+ pageToken: { type: String, default: "" },
19
+ caption: { type: String, default: "" },
20
+ permanentLink: { type: String, default: "" },
21
+ attachments: [{
22
+ link: { type: String, default: ""},
23
+ src: { type: String, default: "" },
24
+ caption: { type: String, default: "" },
25
+ mediaType: { type: String, default: "" }
26
+ }],
27
+ socialProfile: { type: Schema.Types.ObjectId, ref: "Integration", default: null },
28
+ status: { type: String, default: "scheduled" },
29
+ scheduleDate: {type: Date, default: null },
30
+ queued: { type: Boolean, default: false },
31
+ isDeleted: { type: Boolean, default: false },
32
+ publishedAt: { type: String, default: "" },
33
+ publishedBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
34
+ },
35
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
36
+ );
37
+
38
+ const SocialPost = mongoose.model("SocialPost", SocialPostSchema);
39
+ module.exports = SocialPost;
40
+
@@ -0,0 +1,57 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+ // const { Workspace } = require("./Workspace");
4
+
5
+ const socialProfileSchema = new mongoose.Schema(
6
+ {
7
+ pageName: { type: String, default: "" },
8
+ pageToken: { type: String, default: "" },
9
+ platformType: { type: String, default: "" },
10
+ pageId: { type: String, default: "" },
11
+ pageIcon: { type: String, default: "" },
12
+ pageCoverUrl: { type: String, default: "" },
13
+ username: { type: String, default: "" },
14
+ workspaceId: {
15
+ type: Schema.Types.ObjectId,
16
+ ref: "Workspace",
17
+ default: null,
18
+ },
19
+ isDeleted: { type: Boolean, default: false },
20
+ userId: { type: Schema.Types.ObjectId, ref: "User", default: null },
21
+ options: {
22
+ type: Object,
23
+ default: null,
24
+ },
25
+ },
26
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
27
+ );
28
+
29
+ const SocialProfile = mongoose.model("socialProfile", socialProfileSchema);
30
+
31
+ const getSocialProfile = async (profileId) => {
32
+ try {
33
+ return await SocialProfile.findOne({
34
+ _id: mongoose.Types.ObjectId(profileId),
35
+ });
36
+ } catch (error) {
37
+ throw error;
38
+ }
39
+ };
40
+ const findByPageId = async (pageId) => {
41
+ try {
42
+ let obj = { pageId: pageId, isDeleted: false };
43
+ const fetchingSocialProfile = await SocialProfile.findOne(obj);
44
+ if (fetchingSocialProfile) {
45
+ return fetchingSocialProfile;
46
+ }
47
+ return null;
48
+ } catch (err) {
49
+ return null;
50
+ }
51
+ };
52
+
53
+ module.exports = {
54
+ getSocialProfile,
55
+ findByPageId,
56
+ SocialProfile,
57
+ };
package/models/Tag.js ADDED
@@ -0,0 +1,77 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+ const TagSchema = new Schema(
4
+ {
5
+ name: { type: String, default: "" },
6
+ workspaceId: {
7
+ type: Schema.Types.ObjectId,
8
+ ref: "Workspace",
9
+ default: null,
10
+ },
11
+ oldId: { type: String, default: "" },
12
+ webTagId: { type: Number, default: "" },
13
+ createdBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
14
+ updatedBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
15
+ isDeleted: { type: Boolean, default: false },
16
+ },
17
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
18
+ );
19
+
20
+ const Tag = mongoose.model("Tag", TagSchema);
21
+
22
+ const tagsByAggregation = async (aggregate) => {
23
+ try {
24
+ return await Tag.aggregate(aggregate);
25
+ } catch (err) {
26
+ return [];
27
+ }
28
+ };
29
+
30
+ const findTags = async (obj) => {
31
+ try {
32
+ return await Tag.find(obj);
33
+ } catch (err) {
34
+ return [];
35
+ }
36
+ };
37
+
38
+ const findSingleTag = async (obj) => {
39
+ try {
40
+ return await Tag.findOne(obj);
41
+ } catch (err) {
42
+ return null;
43
+ }
44
+ };
45
+
46
+ const createTag = async (obj) => {
47
+ try {
48
+ const tag = new Tag(obj);
49
+ return await tag.save();
50
+ } catch (err) {
51
+ return null;
52
+ }
53
+ };
54
+ const softDeleteTags = async (workspaceId, convertingIds, type) => {
55
+ try {
56
+ const filter = {
57
+ workspaceId: workspaceId,
58
+ isDeleted: false,
59
+ };
60
+ filter[type] = { $in: convertingIds };
61
+ const update = { $set: { isDeleted: true } };
62
+ const result = await Tag.updateMany(filter, update);
63
+ return result;
64
+ } catch (err) {
65
+ return [];
66
+ }
67
+ };
68
+
69
+ module.exports = {
70
+ Tag,
71
+ tagsByAggregation,
72
+ findTags,
73
+ findSingleTag,
74
+ createTag,
75
+ softDeleteTags,
76
+ Tag,
77
+ };
@@ -0,0 +1,76 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+
4
+ const templateSchema = new mongoose.Schema({
5
+ text: [
6
+ {
7
+ id: String,
8
+ textId: String,
9
+ text: String,
10
+ fontSize: String,
11
+ color: String,
12
+ fontFamily: String,
13
+ fontWeight: String,
14
+ textDecoration: String,
15
+ fontStyle: String,
16
+ x: Number,
17
+ y: Number,
18
+ width: Number,
19
+ rotation: { type: Number, default: 0 },
20
+ },
21
+ ],
22
+ image: [
23
+ {
24
+ id: String,
25
+ src: String,
26
+ url: String,
27
+ x: Number,
28
+ y: Number,
29
+ height: Number,
30
+ width: Number,
31
+ type: { type: String, default: "logo" },
32
+ },
33
+ ],
34
+ height: String,
35
+ width: String,
36
+ back: [
37
+ {
38
+ src: String,
39
+ id: String,
40
+ x: Number,
41
+ y: Number,
42
+ height: Number,
43
+ width: Number,
44
+ },
45
+ ],
46
+ display: [
47
+ {
48
+ id: String,
49
+ src: String,
50
+ x: Number,
51
+ y: Number,
52
+ height: Number,
53
+ width: Number,
54
+ rotation: { type: Number, default: 0 },
55
+ },
56
+ ],
57
+ preview: {
58
+ id: String,
59
+ src: String,
60
+ x: Number,
61
+ y: Number,
62
+ height: Number,
63
+ width: Number,
64
+ rotation: { type: Number, default: 0 },
65
+ },
66
+ frameId: {
67
+ type: Schema.Types.ObjectId,
68
+ ref: "TemplateFrame",
69
+ },
70
+ name: { type: String, default: "" },
71
+ canColor: String,
72
+ userId: String,
73
+ workspaceId: { type: String, default: "" },
74
+ });
75
+
76
+ module.exports = mongoose.model("Template", templateSchema);
@@ -0,0 +1,37 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+
4
+ const templateFrameSchema = new mongoose.Schema(
5
+ {
6
+ fullImageUrl: { type: String, default: "" },
7
+ frameUrl: { type: String, default: "" },
8
+ name: { type: String, default: "" },
9
+ height: { type: Number },
10
+ width: { type: Number },
11
+ displayImageHeight: { type: Number },
12
+ displayImageWidth: { type: Number },
13
+ type: { type: String, default: "" },
14
+ categoryId: { type: Schema.Types.ObjectId, ref: "Catalogue" },
15
+ subCategoryId: { type: String, default: "" },
16
+ workspaceId: { type: String, default: "" },
17
+ colorIds: [
18
+ {
19
+ colorId: {
20
+ type: Schema.Types.ObjectId,
21
+ ref: "Color",
22
+ },
23
+ },
24
+ ],
25
+ tagIds: [
26
+ {
27
+ tagId: {
28
+ type: Schema.Types.ObjectId,
29
+ ref: "TemplateTag",
30
+ },
31
+ },
32
+ ],
33
+ },
34
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
35
+ );
36
+
37
+ module.exports = mongoose.model("TemplateFrame", templateFrameSchema);
@@ -0,0 +1,10 @@
1
+ const mongoose = require("mongoose");
2
+
3
+ const tagSchema = new mongoose.Schema(
4
+ {
5
+ name: { type: String, default: "" },
6
+ },
7
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
8
+ );
9
+
10
+ module.exports = mongoose.model("TemplateTag", tagSchema);
@@ -0,0 +1,47 @@
1
+ const mongoose = require("mongoose");
2
+
3
+ const userSessionSchema = new mongoose.Schema(
4
+ {
5
+ userId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: "User",
8
+ default: null,
9
+ },
10
+ browserId: {
11
+ type: String,
12
+ default: "",
13
+ },
14
+ ipAddress: {
15
+ type: String,
16
+ default: "",
17
+ },
18
+ userAgent: {
19
+ type: String,
20
+ default: "",
21
+ },
22
+ createdTime: {
23
+ type: String,
24
+ default: "",
25
+ },
26
+ lastActivity: {
27
+ type: String,
28
+ default: "",
29
+ },
30
+ valid: {
31
+ type: Boolean,
32
+ default: true,
33
+ },
34
+ uuid: {
35
+ type: String,
36
+ default: "",
37
+ },
38
+ type: {
39
+ type: String,
40
+ default: "web",
41
+ },
42
+ },
43
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
44
+ );
45
+
46
+ const UserSession = mongoose.model("UserSession", userSessionSchema);
47
+ module.exports = UserSession;
@@ -0,0 +1,145 @@
1
+ const mongoose = require("mongoose");
2
+ const { Schema } = mongoose;
3
+ const VariantLocationSchema = new Schema(
4
+ {
5
+ variantId: {
6
+ type: Schema.Types.ObjectId,
7
+ ref: "ProductVariant",
8
+ default: null,
9
+ },
10
+ quantity: { type: Number, default: 0 },
11
+ workspaceId: {
12
+ type: Schema.Types.ObjectId,
13
+ ref: "Workspace",
14
+ default: null,
15
+ },
16
+ productId: { type: Schema.Types.ObjectId, ref: "Product", default: null },
17
+ locationId: { type: Schema.Types.ObjectId, ref: "Location", default: null },
18
+ webVariantLocationId: { type: Number, default: null },
19
+ rackNo: { type: String, default: "" },
20
+ boxNo: { type: String, default: "" },
21
+ shelfNo: { type: String, default: "" },
22
+ uuid: { type: String, default: "" },
23
+ createdBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
24
+ updatedBy: { type: Schema.Types.ObjectId, ref: "User", default: null },
25
+ isDeleted: { type: Boolean, default: false },
26
+ },
27
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
28
+ );
29
+
30
+ const VariantLocation = mongoose.model(
31
+ "VariantLocation",
32
+ VariantLocationSchema
33
+ );
34
+
35
+ const createNewVariantLocation = async (variantLocationData) => {
36
+ try {
37
+ return await VariantLocation.create(variantLocationData);
38
+ } catch (error) {
39
+ console.log(error);
40
+ return null;
41
+ }
42
+ };
43
+
44
+ const insertVariantLocations = async (data) => {
45
+ try {
46
+ return await VariantLocation.insertMany(data);
47
+ } catch (error) {
48
+ console.log(error);
49
+ return [null];
50
+ }
51
+ };
52
+
53
+ const updateManyVariantsLocations = async (
54
+ criteria,
55
+ updateData,
56
+ options = {}
57
+ ) => {
58
+ try {
59
+ return await VariantLocation.updateMany(criteria, updateData, options);
60
+ } catch (error) {
61
+ console.log(error);
62
+ return null;
63
+ }
64
+ };
65
+
66
+ const findVariantLocationById = async (variantLocationId) => {
67
+ try {
68
+ return await VariantLocation.findById(variantLocationId);
69
+ } catch (error) {
70
+ console.log(error);
71
+ return null;
72
+ }
73
+ };
74
+
75
+ const updateVariantLocationById = async (criteria, updateData, options) => {
76
+ try {
77
+ return await VariantLocation.findByIdAndUpdate(
78
+ criteria,
79
+ updateData,
80
+ options
81
+ );
82
+ } catch (error) {
83
+ console.log(error);
84
+ return null;
85
+ }
86
+ };
87
+
88
+ const deleteVariantLocationById = async (variantLocationId) => {
89
+ try {
90
+ return await VariantLocation.findByIdAndDelete(variantLocationId);
91
+ } catch (error) {
92
+ console.log(error);
93
+ return null;
94
+ }
95
+ };
96
+
97
+ const findVariantLocation = async (criteria) => {
98
+ try {
99
+ return await VariantLocation.findOne(criteria);
100
+ } catch (error) {
101
+ console.log(error);
102
+ return null;
103
+ }
104
+ };
105
+
106
+ const findVariantLocations = async (criteria) => {
107
+ try {
108
+ return await VariantLocation.find(criteria);
109
+ } catch (error) {
110
+ console.log(error);
111
+ return [];
112
+ }
113
+ };
114
+
115
+ const findSingleVariantLocation = async (obj) => {
116
+ try {
117
+ let variantLocation = await VariantLocation.findOne(obj);
118
+ return variantLocation;
119
+ } catch (err) {
120
+ return null;
121
+ }
122
+ };
123
+
124
+ const findVariantLocationsByPopulate = async (criteria, populate) => {
125
+ try {
126
+ return await VariantLocation.find(criteria).populate(populate);
127
+ } catch (error) {
128
+ console.log(error);
129
+ return [];
130
+ }
131
+ };
132
+
133
+ module.exports = {
134
+ insertVariantLocations,
135
+ createNewVariantLocation,
136
+ updateManyVariantsLocations,
137
+ findVariantLocationById,
138
+ updateVariantLocationById,
139
+ findVariantLocationsByPopulate,
140
+ deleteVariantLocationById,
141
+ findVariantLocation,
142
+ findVariantLocations,
143
+ findSingleVariantLocation,
144
+ VariantLocation,
145
+ };
File without changes
@@ -0,0 +1,34 @@
1
+ const mongoose = require("mongoose");
2
+
3
+ const WorkflowSchema = new mongoose.Schema(
4
+ {
5
+ workspaceId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: "Workspace",
8
+ required: true,
9
+ },
10
+ orders: {
11
+ enabled: { type: Boolean, default: false },
12
+ maxOrders: { type: Number, default: 100 },
13
+ currentCount: { type: Number, default: 0 },
14
+ },
15
+ chatbot: { type: Boolean, default: true },
16
+ nlpBot: {
17
+ enabled: { type: Boolean, default: true },
18
+ shared: {
19
+ maxRequests: { type: Number, default: 5000 },
20
+ maxTokens: { type: Number, default: 80000 },
21
+ requestsCount: { type: Number, default: 0 },
22
+ tokensCount: { type: Number, default: 0 },
23
+ },
24
+ custom: {
25
+ requestsCount: { type: Number, default: 0 },
26
+ tokensCount: { type: Number, default: 0 },
27
+ },
28
+ },
29
+ },
30
+ { timestamps: true, toJSON: { virtuals: true }, toObject: { virtuals: true } }
31
+ );
32
+
33
+ const Workflow = mongoose.model("Workflow", WorkflowSchema);
34
+ module.exports = Workflow;
@@ -273,6 +273,9 @@ const workspaceSchema = new mongoose.Schema(
273
273
  "url",
274
274
  "colour",
275
275
  "file",
276
+ "starRating",
277
+ "paragraph",
278
+ "heading",
276
279
  ],
277
280
  },
278
281
  option: {