@duvdu-v1/duvdu 1.1.246 → 1.1.248

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 (56) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.js +1 -0
  3. package/build/models/Bookmark-projects.model.d.ts +2 -2
  4. package/build/models/Bookmark.model.d.ts +1 -1
  5. package/build/models/Plan.model.d.ts +1 -1
  6. package/build/models/Review.model.d.ts +2 -2
  7. package/build/models/Role.model.d.ts +1 -1
  8. package/build/models/Term.model.d.ts +3 -3
  9. package/build/models/Ticket.model.d.ts +3 -3
  10. package/build/models/User.model.d.ts +1 -1
  11. package/build/models/all-contracts.model.d.ts +2 -2
  12. package/build/models/allProjects.model.d.ts +1 -1
  13. package/build/models/category.model.d.ts +3 -3
  14. package/build/models/contractCancel.model.d.ts +34 -0
  15. package/build/models/contractCancel.model.js +10 -0
  16. package/build/models/contracts.model.d.ts +2 -2
  17. package/build/models/copyright-contract.model.d.ts +2 -2
  18. package/build/models/copyright-contract.model.js +4 -2
  19. package/build/models/copyrights-booking.model.d.ts +2 -2
  20. package/build/models/copyrights.model.d.ts +2 -2
  21. package/build/models/coupon.model.d.ts +2 -2
  22. package/build/models/favourites.model.d.ts +2 -2
  23. package/build/models/follow.model.d.ts +2 -2
  24. package/build/models/messages.model.d.ts +2 -2
  25. package/build/models/notification.model.d.ts +2 -2
  26. package/build/models/portfolio-post.model.d.ts +2 -2
  27. package/build/models/producer.model.d.ts +2 -2
  28. package/build/models/producerPlatform.model.d.ts +1 -1
  29. package/build/models/producer_contracts.model.d.ts +2 -2
  30. package/build/models/projectContract.model.d.ts +2 -2
  31. package/build/models/projectContract.model.js +4 -2
  32. package/build/models/projectViews.model.d.ts +1 -1
  33. package/build/models/ranks.model.d.ts +1 -1
  34. package/build/models/rental-contracts.model.d.ts +2 -2
  35. package/build/models/rental.model.d.ts +2 -2
  36. package/build/models/report.model.d.ts +2 -2
  37. package/build/models/session.model.d.ts +2 -2
  38. package/build/models/settings.model.d.ts +1 -1
  39. package/build/models/studio-booking-book.model.d.ts +2 -2
  40. package/build/models/studio-booking.model.d.ts +3 -3
  41. package/build/models/teamProject.model.d.ts +2 -2
  42. package/build/models/teamProject.model.js +4 -2
  43. package/build/models/userSession.model.d.ts +2 -2
  44. package/build/services/category.service.js +9 -6
  45. package/build/services/rank.service.d.ts +2 -2
  46. package/build/services/rank.service.js +23 -49
  47. package/build/types/Bookmarks.d.ts +1 -1
  48. package/build/types/Plan.d.ts +1 -1
  49. package/build/types/Projects.d.ts +1 -1
  50. package/build/types/Rate.d.ts +1 -1
  51. package/build/types/Ticket.d.ts +1 -1
  52. package/build/types/User.d.ts +1 -1
  53. package/build/types/copyrights-order.d.ts +2 -2
  54. package/build/types/portfolio-post-order.d.ts +2 -2
  55. package/build/utils/api-feature.d.ts +3 -3
  56. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
+ /// <reference types="mongoose/types/document" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
4
5
  /// <reference types="mongoose/types/connection" />
5
6
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
7
  /// <reference types="mongoose/types/error" />
8
8
  /// <reference types="mongoose/types/expressions" />
9
9
  /// <reference types="mongoose/types/helpers" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,9 @@
1
+ /// <reference types="mongoose/types/document" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
4
5
  /// <reference types="mongoose/types/connection" />
5
6
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
7
  /// <reference types="mongoose/types/error" />
8
8
  /// <reference types="mongoose/types/expressions" />
9
9
  /// <reference types="mongoose/types/helpers" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,15 +1,16 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
3
+ /// <reference types="mongoose/types/models" />
1
4
  /// <reference types="mongoose/types/aggregate" />
2
5
  /// <reference types="mongoose/types/callback" />
3
6
  /// <reference types="mongoose/types/collection" />
4
7
  /// <reference types="mongoose/types/connection" />
5
8
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
9
  /// <reference types="mongoose/types/error" />
8
10
  /// <reference types="mongoose/types/expressions" />
9
11
  /// <reference types="mongoose/types/helpers" />
10
12
  /// <reference types="mongoose/types/middlewares" />
11
13
  /// <reference types="mongoose/types/indexes" />
12
- /// <reference types="mongoose/types/models" />
13
14
  /// <reference types="mongoose/types/mongooseoptions" />
14
15
  /// <reference types="mongoose/types/pipelinestage" />
15
16
  /// <reference types="mongoose/types/populate" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -96,11 +96,13 @@ exports.TeamContract = (0, mongoose_1.model)(model_names_1.MODELS.teamContract,
96
96
  paymentAmount: { type: Number, default: 0 },
97
97
  attachments: [String],
98
98
  totalCheckoutAt: Date,
99
- submitFiles: [{
99
+ submitFiles: [
100
+ {
100
101
  link: { type: String, default: null },
101
102
  notes: { type: String, default: null },
102
103
  reason: { type: String, default: null },
103
104
  dateOfSubmission: { type: Date, default: null },
104
105
  status: { type: String, enum: copyright_contract_model_1.SubmitFilesStatus, default: copyright_contract_model_1.SubmitFilesStatus.pending },
105
- }],
106
+ },
107
+ ],
106
108
  }, { timestamps: true, collection: model_names_1.MODELS.teamContract }));
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/types" />
2
+ /// <reference types="mongoose/types/document" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -64,18 +64,21 @@ function filterRelatedCategoryForCategory(categoryId, relatedCategories, lang) {
64
64
  throw new notfound_error_1.NotFound({ en: 'Category not found', ar: 'الفئة غير موجودة' }, lang);
65
65
  }
66
66
  // Get all related category IDs
67
- const relatedCategoryIds = relatedCategories.map(rc => rc.category);
67
+ const relatedCategoryIds = relatedCategories.map((rc) => rc.category);
68
68
  // Fetch all related categories in one query
69
69
  const relatedCategoryDocs = yield category_model_1.Categories.find({
70
70
  _id: { $in: relatedCategoryIds },
71
- isRelated: true
71
+ isRelated: true,
72
72
  });
73
73
  if (relatedCategoryDocs.length !== relatedCategoryIds.length) {
74
- throw new bad_request_error_1.BadRequestError({ en: 'One or more related categories not found', ar: 'واحد أو أكثر من الفئات المرتبطة غير موجودة' }, lang);
74
+ throw new bad_request_error_1.BadRequestError({
75
+ en: 'One or more related categories not found',
76
+ ar: 'واحد أو أكثر من الفئات المرتبطة غير موجودة',
77
+ }, lang);
75
78
  }
76
79
  // Validate each related category's subcategories and tags
77
80
  for (const relatedCategory of relatedCategories) {
78
- const categoryDoc = relatedCategoryDocs.find(doc => doc._id.toString() === relatedCategory.category);
81
+ const categoryDoc = relatedCategoryDocs.find((doc) => doc._id.toString() === relatedCategory.category);
79
82
  if (relatedCategory.subCategories) {
80
83
  for (const subCat of relatedCategory.subCategories) {
81
84
  // Find matching subcategory in the category document
@@ -86,8 +89,8 @@ function filterRelatedCategoryForCategory(categoryId, relatedCategories, lang) {
86
89
  // Validate tags
87
90
  if (subCat.tags && subCat.tags.length > 0) {
88
91
  const validTagIds = foundSubCategory.tags.map((tag) => tag._id.toString());
89
- const providedTagIds = subCat.tags.map(t => t.tag);
90
- const invalidTags = providedTagIds.filter(tagId => !validTagIds.includes(tagId));
92
+ const providedTagIds = subCat.tags.map((t) => t.tag);
93
+ const invalidTags = providedTagIds.filter((tagId) => !validTagIds.includes(tagId));
91
94
  if (invalidTags.length > 0) {
92
95
  throw new bad_request_error_1.BadRequestError({ en: 'Invalid tags found', ar: 'تم العثور على علامات غير صالحة' }, lang);
93
96
  }
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/document" />
2
+ /// <reference types="mongoose/types/types" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -27,54 +27,43 @@ const updateRankForUser = (userId) => __awaiter(void 0, void 0, void 0, function
27
27
  const currentRank = yield ranks_model_1.Rank.findOne({
28
28
  actionCount: { $lte: acceptedProjectsCounter },
29
29
  projectsLiked: { $lte: projectsLiked },
30
- projectsCount: { $lte: projectsCount }
30
+ projectsCount: { $lte: projectsCount },
31
31
  })
32
32
  .sort({
33
33
  actionCount: -1,
34
34
  favoriteCount: -1,
35
35
  projectsLiked: -1,
36
- projectsCount: -1
36
+ projectsCount: -1,
37
37
  })
38
38
  .exec();
39
39
  // Find next possible rank
40
40
  const nextRank = yield ranks_model_1.Rank.findOne({
41
- $or: [
42
- { actionCount: { $gt: acceptedProjectsCounter } },
43
- { projectsLiked: { $gt: projectsLiked } },
44
- { projectsCount: { $gt: projectsCount } }
45
- ]
46
- })
47
- .sort({
48
- actionCount: 1,
49
- favoriteCount: 1,
50
- projectsLiked: 1,
51
- projectsCount: 1
41
+ actionCount: { $gt: acceptedProjectsCounter || 0 },
52
42
  })
43
+ .sort({ actionCount: 1 })
53
44
  .exec();
54
45
  if (currentRank) {
55
46
  user.rank.title = currentRank.rank;
56
47
  user.rank.color = currentRank.color;
57
48
  if (nextRank) {
58
- // Calculate progress based on the most relevant criterion
59
49
  const criteriaProgress = [
60
50
  {
61
51
  completed: acceptedProjectsCounter - currentRank.actionCount,
62
- needed: nextRank.actionCount - currentRank.actionCount
52
+ needed: nextRank.actionCount - currentRank.actionCount,
63
53
  },
64
54
  {
65
55
  completed: projectsLiked - currentRank.projectsLiked,
66
- needed: nextRank.projectsLiked - currentRank.projectsLiked
56
+ needed: nextRank.projectsLiked - currentRank.projectsLiked,
67
57
  },
68
58
  {
69
59
  completed: projectsCount - currentRank.projectsCount,
70
- needed: nextRank.projectsCount - currentRank.projectsCount
71
- }
60
+ needed: nextRank.projectsCount - currentRank.projectsCount,
61
+ },
72
62
  ];
73
- // Find the criterion with the highest progress percentage
63
+ // Improved progress calculation
74
64
  const progress = criteriaProgress
75
- .filter(c => c.needed > 0)
76
- .map(c => (c.completed / c.needed) * 100);
77
- console.log('progress', progress);
65
+ .filter((c) => c.needed > 0)
66
+ .map((c) => Math.min(Math.max((c.completed / c.needed) * 100, 0), 100)); // Ensure between 0-100
78
67
  user.rank.nextRangPercentage = progress.length ? Math.max(...progress) : 0;
79
68
  user.rank.nextRankTitle = nextRank.rank;
80
69
  }
@@ -98,9 +87,7 @@ const recalculateAllUsersRanks = () => __awaiter(void 0, void 0, void 0, functio
98
87
  try {
99
88
  // Process users in batches
100
89
  while (true) {
101
- const users = yield User_model_1.Users.find({})
102
- .skip(processedCount)
103
- .limit(BATCH_SIZE);
90
+ const users = yield User_model_1.Users.find({}).skip(processedCount).limit(BATCH_SIZE);
104
91
  if (users.length === 0)
105
92
  break;
106
93
  // Update rank for each user in the batch
@@ -109,61 +96,48 @@ const recalculateAllUsersRanks = () => __awaiter(void 0, void 0, void 0, functio
109
96
  const projectsCount = user.projectsCount;
110
97
  const projectsLiked = user.likes;
111
98
  const acceptedProjectsCounter = user.acceptedProjectsCounter;
112
- console.log('acceptedProjectsCounter', acceptedProjectsCounter);
113
- console.log('projectsLiked', projectsLiked);
114
- console.log('projectsCount', projectsCount);
115
99
  // Find current rank that matches ALL criteria
116
100
  const currentRank = yield ranks_model_1.Rank.findOne({
117
101
  actionCount: { $lte: acceptedProjectsCounter },
118
102
  projectsLiked: { $lte: projectsLiked },
119
- projectsCount: { $lte: projectsCount }
103
+ projectsCount: { $lte: projectsCount },
120
104
  })
121
105
  .sort({
122
106
  actionCount: -1,
123
107
  favoriteCount: -1,
124
108
  projectsLiked: -1,
125
- projectsCount: -1
109
+ projectsCount: -1,
126
110
  })
127
111
  .exec();
128
112
  // Find next possible rank
129
113
  const nextRank = yield ranks_model_1.Rank.findOne({
130
- $or: [
131
- { actionCount: { $gt: acceptedProjectsCounter } },
132
- { projectsLiked: { $gt: projectsLiked } },
133
- { projectsCount: { $gt: projectsCount } }
134
- ]
135
- })
136
- .sort({
137
- actionCount: 1,
138
- favoriteCount: 1,
139
- projectsLiked: 1,
140
- projectsCount: 1
114
+ actionCount: { $gt: acceptedProjectsCounter || 0 },
141
115
  })
116
+ .sort({ actionCount: 1 })
142
117
  .exec();
143
118
  if (currentRank) {
144
119
  user.rank.title = currentRank.rank;
145
120
  user.rank.color = currentRank.color;
146
121
  if (nextRank) {
147
- // Calculate progress based on the most relevant criterion
148
122
  const criteriaProgress = [
149
123
  {
150
124
  completed: acceptedProjectsCounter - currentRank.actionCount,
151
- needed: nextRank.actionCount - currentRank.actionCount
125
+ needed: nextRank.actionCount - currentRank.actionCount,
152
126
  },
153
127
  {
154
128
  completed: projectsLiked - currentRank.projectsLiked,
155
- needed: nextRank.projectsLiked - currentRank.projectsLiked
129
+ needed: nextRank.projectsLiked - currentRank.projectsLiked,
156
130
  },
157
131
  {
158
132
  completed: projectsCount - currentRank.projectsCount,
159
- needed: nextRank.projectsCount - currentRank.projectsCount
160
- }
133
+ needed: nextRank.projectsCount - currentRank.projectsCount,
134
+ },
161
135
  ];
162
136
  console.log('criteriaProgress', criteriaProgress);
163
- // Find the criterion with the highest progress percentage
137
+ // Improved progress calculation
164
138
  const progress = criteriaProgress
165
- .filter(c => c.needed > 0)
166
- .map(c => (c.completed / c.needed) * 100);
139
+ .filter((c) => c.needed > 0)
140
+ .map((c) => Math.min(Math.max((c.completed / c.needed) * 100, 0), 100)); // Ensure between 0-100
167
141
  console.log('progress', progress);
168
142
  console.log('progress.length', progress.length ? Math.max(...progress) : 0);
169
143
  user.rank.nextRangPercentage = progress.length ? Math.max(...progress) : 0;
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,3 +1,4 @@
1
+ /// <reference types="mongoose/types/types" />
1
2
  /// <reference types="mongoose/types/aggregate" />
2
3
  /// <reference types="mongoose/types/callback" />
3
4
  /// <reference types="mongoose/types/collection" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/document" />
2
+ /// <reference types="mongoose/types/types" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,9 +1,10 @@
1
+ /// <reference types="mongoose/types/document" />
2
+ /// <reference types="mongoose/types/types" />
1
3
  /// <reference types="mongoose/types/aggregate" />
2
4
  /// <reference types="mongoose/types/callback" />
3
5
  /// <reference types="mongoose/types/collection" />
4
6
  /// <reference types="mongoose/types/connection" />
5
7
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
8
  /// <reference types="mongoose/types/error" />
8
9
  /// <reference types="mongoose/types/expressions" />
9
10
  /// <reference types="mongoose/types/helpers" />
@@ -17,7 +18,6 @@
17
18
  /// <reference types="mongoose/types/schemaoptions" />
18
19
  /// <reference types="mongoose/types/schematypes" />
19
20
  /// <reference types="mongoose/types/session" />
20
- /// <reference types="mongoose/types/types" />
21
21
  /// <reference types="mongoose/types/utility" />
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
@@ -1,19 +1,19 @@
1
+ /// <reference types="mongoose/types/query" />
2
+ /// <reference types="mongoose/types/document" />
3
+ /// <reference types="mongoose/types/models" />
1
4
  /// <reference types="mongoose/types/aggregate" />
2
5
  /// <reference types="mongoose/types/callback" />
3
6
  /// <reference types="mongoose/types/collection" />
4
7
  /// <reference types="mongoose/types/connection" />
5
8
  /// <reference types="mongoose/types/cursor" />
6
- /// <reference types="mongoose/types/document" />
7
9
  /// <reference types="mongoose/types/error" />
8
10
  /// <reference types="mongoose/types/expressions" />
9
11
  /// <reference types="mongoose/types/helpers" />
10
12
  /// <reference types="mongoose/types/middlewares" />
11
13
  /// <reference types="mongoose/types/indexes" />
12
- /// <reference types="mongoose/types/models" />
13
14
  /// <reference types="mongoose/types/mongooseoptions" />
14
15
  /// <reference types="mongoose/types/pipelinestage" />
15
16
  /// <reference types="mongoose/types/populate" />
16
- /// <reference types="mongoose/types/query" />
17
17
  /// <reference types="mongoose/types/schemaoptions" />
18
18
  /// <reference types="mongoose/types/schematypes" />
19
19
  /// <reference types="mongoose/types/session" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duvdu-v1/duvdu",
3
- "version": "1.1.246",
3
+ "version": "1.1.248",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [