@aneuhold/be-ts-db-lib 4.1.1 → 4.2.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 (161) hide show
  1. package/CHANGELOG.md +30 -2
  2. package/README.md +1 -0
  3. package/lib/repositories/BaseRepository.d.ts +8 -1
  4. package/lib/repositories/BaseRepository.d.ts.map +1 -1
  5. package/lib/repositories/BaseRepository.js +13 -1
  6. package/lib/repositories/BaseRepository.js.map +1 -1
  7. package/lib/repositories/BaseRepository.ts +14 -1
  8. package/lib/repositories/common/UserRepository.d.ts.map +1 -1
  9. package/lib/repositories/common/UserRepository.js +12 -0
  10. package/lib/repositories/common/UserRepository.js.map +1 -1
  11. package/lib/repositories/common/UserRepository.ts +12 -0
  12. package/lib/repositories/dashboard/DashboardBaseWithUserIdRepository.d.ts +20 -0
  13. package/lib/repositories/dashboard/DashboardBaseWithUserIdRepository.d.ts.map +1 -1
  14. package/lib/repositories/dashboard/DashboardBaseWithUserIdRepository.js +36 -4
  15. package/lib/repositories/dashboard/DashboardBaseWithUserIdRepository.js.map +1 -1
  16. package/lib/repositories/dashboard/DashboardBaseWithUserIdRepository.ts +39 -4
  17. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts.map +1 -1
  18. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js +2 -12
  19. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js.map +1 -1
  20. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts +2 -16
  21. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts.map +1 -1
  22. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js +2 -12
  23. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js.map +1 -1
  24. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts +2 -16
  25. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts +14 -0
  26. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts.map +1 -1
  27. package/lib/repositories/dashboard/DashboardTaskRepository.js +33 -35
  28. package/lib/repositories/dashboard/DashboardTaskRepository.js.map +1 -1
  29. package/lib/repositories/dashboard/DashboardTaskRepository.ts +41 -45
  30. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts +14 -0
  31. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts.map +1 -1
  32. package/lib/repositories/dashboard/DashboardUserConfigRepository.js +26 -15
  33. package/lib/repositories/dashboard/DashboardUserConfigRepository.js.map +1 -1
  34. package/lib/repositories/dashboard/DashboardUserConfigRepository.ts +38 -21
  35. package/lib/repositories/workout/WorkoutBaseRepository.d.ts +22 -0
  36. package/lib/repositories/workout/WorkoutBaseRepository.d.ts.map +1 -0
  37. package/lib/repositories/workout/WorkoutBaseRepository.js +53 -0
  38. package/lib/repositories/workout/WorkoutBaseRepository.js.map +1 -0
  39. package/lib/repositories/workout/WorkoutBaseRepository.ts +85 -0
  40. package/lib/repositories/workout/WorkoutBaseWithUserIdRepository.d.ts +40 -0
  41. package/lib/repositories/workout/WorkoutBaseWithUserIdRepository.d.ts.map +1 -0
  42. package/lib/repositories/workout/WorkoutBaseWithUserIdRepository.js +96 -0
  43. package/lib/repositories/workout/WorkoutBaseWithUserIdRepository.js.map +1 -0
  44. package/lib/repositories/workout/WorkoutBaseWithUserIdRepository.ts +134 -0
  45. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.d.ts +17 -0
  46. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.d.ts.map +1 -0
  47. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.js +34 -0
  48. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.js.map +1 -0
  49. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.ts +40 -0
  50. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.d.ts +31 -0
  51. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.d.ts.map +1 -0
  52. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.js +70 -0
  53. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.js.map +1 -0
  54. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.ts +84 -0
  55. package/lib/repositories/workout/WorkoutExerciseRepository.d.ts +14 -0
  56. package/lib/repositories/workout/WorkoutExerciseRepository.d.ts.map +1 -0
  57. package/lib/repositories/workout/WorkoutExerciseRepository.js +34 -0
  58. package/lib/repositories/workout/WorkoutExerciseRepository.js.map +1 -0
  59. package/lib/repositories/workout/WorkoutExerciseRepository.ts +40 -0
  60. package/lib/repositories/workout/WorkoutMesocycleRepository.d.ts +14 -0
  61. package/lib/repositories/workout/WorkoutMesocycleRepository.d.ts.map +1 -0
  62. package/lib/repositories/workout/WorkoutMesocycleRepository.js +34 -0
  63. package/lib/repositories/workout/WorkoutMesocycleRepository.js.map +1 -0
  64. package/lib/repositories/workout/WorkoutMesocycleRepository.ts +40 -0
  65. package/lib/repositories/workout/WorkoutMicrocycleRepository.d.ts +31 -0
  66. package/lib/repositories/workout/WorkoutMicrocycleRepository.d.ts.map +1 -0
  67. package/lib/repositories/workout/WorkoutMicrocycleRepository.js +72 -0
  68. package/lib/repositories/workout/WorkoutMicrocycleRepository.js.map +1 -0
  69. package/lib/repositories/workout/WorkoutMicrocycleRepository.ts +86 -0
  70. package/lib/repositories/workout/WorkoutMuscleGroupRepository.d.ts +20 -0
  71. package/lib/repositories/workout/WorkoutMuscleGroupRepository.d.ts.map +1 -0
  72. package/lib/repositories/workout/WorkoutMuscleGroupRepository.js +37 -0
  73. package/lib/repositories/workout/WorkoutMuscleGroupRepository.js.map +1 -0
  74. package/lib/repositories/workout/WorkoutMuscleGroupRepository.ts +43 -0
  75. package/lib/repositories/workout/WorkoutSessionExerciseRepository.d.ts +31 -0
  76. package/lib/repositories/workout/WorkoutSessionExerciseRepository.d.ts.map +1 -0
  77. package/lib/repositories/workout/WorkoutSessionExerciseRepository.js +72 -0
  78. package/lib/repositories/workout/WorkoutSessionExerciseRepository.js.map +1 -0
  79. package/lib/repositories/workout/WorkoutSessionExerciseRepository.ts +86 -0
  80. package/lib/repositories/workout/WorkoutSessionRepository.d.ts +31 -0
  81. package/lib/repositories/workout/WorkoutSessionRepository.d.ts.map +1 -0
  82. package/lib/repositories/workout/WorkoutSessionRepository.js +72 -0
  83. package/lib/repositories/workout/WorkoutSessionRepository.js.map +1 -0
  84. package/lib/repositories/workout/WorkoutSessionRepository.ts +86 -0
  85. package/lib/repositories/workout/WorkoutSetRepository.d.ts +31 -0
  86. package/lib/repositories/workout/WorkoutSetRepository.d.ts.map +1 -0
  87. package/lib/repositories/workout/WorkoutSetRepository.js +69 -0
  88. package/lib/repositories/workout/WorkoutSetRepository.js.map +1 -0
  89. package/lib/repositories/workout/WorkoutSetRepository.ts +89 -0
  90. package/lib/util/DbSchemaUpdater.d.ts.map +1 -1
  91. package/lib/util/DbSchemaUpdater.js +25 -0
  92. package/lib/util/DbSchemaUpdater.js.map +1 -1
  93. package/lib/util/DbSchemaUpdater.ts +27 -0
  94. package/lib/util/DocumentCleaner.d.ts +2 -1
  95. package/lib/util/DocumentCleaner.d.ts.map +1 -1
  96. package/lib/util/DocumentCleaner.js +5 -0
  97. package/lib/util/DocumentCleaner.js.map +1 -1
  98. package/lib/util/DocumentCleaner.ts +14 -1
  99. package/lib/util/globalTestVariables.d.ts +8 -0
  100. package/lib/util/globalTestVariables.d.ts.map +1 -0
  101. package/lib/util/globalTestVariables.js +8 -0
  102. package/lib/util/globalTestVariables.js.map +1 -0
  103. package/lib/{tests → util}/globalTestVariables.ts +3 -0
  104. package/lib/validators/common/UserValidator.js +1 -1
  105. package/lib/validators/common/UserValidator.js.map +1 -1
  106. package/lib/validators/common/UserValidator.ts +1 -1
  107. package/lib/validators/workout/EquipmentTypeValidator.d.ts +9 -0
  108. package/lib/validators/workout/EquipmentTypeValidator.d.ts.map +1 -0
  109. package/lib/validators/workout/EquipmentTypeValidator.js +43 -0
  110. package/lib/validators/workout/EquipmentTypeValidator.js.map +1 -0
  111. package/lib/validators/workout/EquipmentTypeValidator.ts +56 -0
  112. package/lib/validators/workout/ExerciseCalibrationValidator.d.ts +9 -0
  113. package/lib/validators/workout/ExerciseCalibrationValidator.d.ts.map +1 -0
  114. package/lib/validators/workout/ExerciseCalibrationValidator.js +65 -0
  115. package/lib/validators/workout/ExerciseCalibrationValidator.js.map +1 -0
  116. package/lib/validators/workout/ExerciseCalibrationValidator.ts +85 -0
  117. package/lib/validators/workout/ExerciseValidator.d.ts +9 -0
  118. package/lib/validators/workout/ExerciseValidator.d.ts.map +1 -0
  119. package/lib/validators/workout/ExerciseValidator.js +117 -0
  120. package/lib/validators/workout/ExerciseValidator.js.map +1 -0
  121. package/lib/validators/workout/ExerciseValidator.ts +156 -0
  122. package/lib/validators/workout/MesocycleValidator.d.ts +9 -0
  123. package/lib/validators/workout/MesocycleValidator.d.ts.map +1 -0
  124. package/lib/validators/workout/MesocycleValidator.js +56 -0
  125. package/lib/validators/workout/MesocycleValidator.js.map +1 -0
  126. package/lib/validators/workout/MesocycleValidator.ts +73 -0
  127. package/lib/validators/workout/MicrocycleValidator.d.ts +9 -0
  128. package/lib/validators/workout/MicrocycleValidator.d.ts.map +1 -0
  129. package/lib/validators/workout/MicrocycleValidator.js +73 -0
  130. package/lib/validators/workout/MicrocycleValidator.js.map +1 -0
  131. package/lib/validators/workout/MicrocycleValidator.ts +91 -0
  132. package/lib/validators/workout/MuscleGroupValidator.d.ts +9 -0
  133. package/lib/validators/workout/MuscleGroupValidator.d.ts.map +1 -0
  134. package/lib/validators/workout/MuscleGroupValidator.js +43 -0
  135. package/lib/validators/workout/MuscleGroupValidator.js.map +1 -0
  136. package/lib/validators/workout/MuscleGroupValidator.ts +53 -0
  137. package/lib/validators/workout/SessionExerciseValidator.d.ts +9 -0
  138. package/lib/validators/workout/SessionExerciseValidator.d.ts.map +1 -0
  139. package/lib/validators/workout/SessionExerciseValidator.js +94 -0
  140. package/lib/validators/workout/SessionExerciseValidator.js.map +1 -0
  141. package/lib/validators/workout/SessionExerciseValidator.ts +117 -0
  142. package/lib/validators/workout/SessionValidator.d.ts +9 -0
  143. package/lib/validators/workout/SessionValidator.d.ts.map +1 -0
  144. package/lib/validators/workout/SessionValidator.js +73 -0
  145. package/lib/validators/workout/SessionValidator.js.map +1 -0
  146. package/lib/validators/workout/SessionValidator.ts +89 -0
  147. package/lib/validators/workout/SetValidator.d.ts +9 -0
  148. package/lib/validators/workout/SetValidator.d.ts.map +1 -0
  149. package/lib/validators/workout/SetValidator.js +69 -0
  150. package/lib/validators/workout/SetValidator.js.map +1 -0
  151. package/lib/validators/workout/SetValidator.ts +88 -0
  152. package/package.json +6 -5
  153. package/lib/tests/globalTestVariables.d.ts +0 -5
  154. package/lib/tests/globalTestVariables.d.ts.map +0 -1
  155. package/lib/tests/globalTestVariables.js +0 -5
  156. package/lib/tests/globalTestVariables.js.map +0 -1
  157. package/lib/tests/testsUtil.d.ts +0 -34
  158. package/lib/tests/testsUtil.d.ts.map +0 -1
  159. package/lib/tests/testsUtil.js +0 -60
  160. package/lib/tests/testsUtil.js.map +0 -1
  161. package/lib/tests/testsUtil.ts +0 -68
package/CHANGELOG.md CHANGED
@@ -5,25 +5,50 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 🔖 [4.2.0] (2026-02-06)
9
+
10
+ ### ✅ Added
11
+
12
+ - Added Phase 5 repository implementations and several additional repositories for dashboard and workout domains.
13
+ - Added new validators and lifecycle tests to improve data integrity and repository behavior.
14
+ - Added listeners for user repository events to support reactive workflows.
15
+
16
+ ### 🏗️ Changed
17
+
18
+ - Cleaned up repository implementations and subscriber logic; refactored tests to run faster and more reliably.
19
+ - Added `check` script (`tsc --noEmit`) to package.json for TypeScript checks.
20
+
21
+ ### 🩹 Fixed
22
+
23
+ - Fixed test configuration issues and various repository logic bugs uncovered during refactors and new tests.
24
+
25
+ ## 🔖 [4.1.2] (2025-12-21)
26
+
27
+ ### 🏗️ Changed
28
+
29
+ - Updated dependency: now requires `@aneuhold/be-ts-lib@^3.0.9`.
30
+
8
31
  ## 🔖 [4.1.1] (2025-12-14)
9
32
 
10
33
  ### 🏗️ Changed
34
+
11
35
  - Updated dependencies: now requires `@aneuhold/be-ts-lib@^3.0.8`, `@aneuhold/core-ts-db-lib@^4.0.4`, `@aneuhold/core-ts-lib@^2.3.16`, and `@aneuhold/local-npm-registry@^0.2.23`.
12
36
 
13
37
  ## 🔖 [4.1.0] (2025-12-14)
14
38
 
15
39
  ### ✅ Added
40
+
16
41
  - Added doc caching and retrieval strategy to repositories
17
42
  - Created base user ID repository for dashboard
18
43
 
19
44
  ### 🏗️ Changed
45
+
20
46
  - Updated test scripts to include coverage
21
47
  - Updated dependencies for compatibility
22
48
 
23
49
  ### 🩹 Fixed
24
- - Fixed import paths in dashboard repositories
25
-
26
50
 
51
+ - Fixed import paths in dashboard repositories
27
52
 
28
53
  ## 🔖 [4.0.2] (2025-12-13)
29
54
 
@@ -183,6 +208,9 @@ Updated dependencies: now requires `@aneuhold/core-ts-db-lib@^3.0.0`, `@aneuhold
183
208
  - Updated workflow permissions to allow repository write access
184
209
 
185
210
  <!-- Link References -->
211
+
212
+ [4.2.0]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.1.2...be-ts-db-lib-v4.2.0
213
+ [4.1.2]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.1.1...be-ts-db-lib-v4.1.2
186
214
  [4.1.1]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.1.0...be-ts-db-lib-v4.1.1
187
215
  [4.1.0]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.0.2...be-ts-db-lib-v4.1.0
188
216
  [4.0.2]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v4.0.1...be-ts-db-lib-v4.0.2
package/README.md CHANGED
@@ -53,6 +53,7 @@ Possible next tasks:
53
53
 
54
54
  1. Copy an existing one over
55
55
  1. Create an associated validator
56
+ 1. Make sure the validator is registered in the DbSchemaUpdater so the DB can be validated when needed.
56
57
 
57
58
  ## Schema Validation for DB
58
59
 
@@ -86,6 +86,13 @@ export default abstract class BaseRepository<TBaseType extends BaseDocument> {
86
86
  * @returns An array of matching documents.
87
87
  */
88
88
  getList(docIds: UUID[]): Promise<TBaseType[]>;
89
+ /**
90
+ * Gets a list of documents matching the given filter. This will and it together with the
91
+ * default filter.
92
+ *
93
+ * @param filter - The filter to apply.
94
+ */
95
+ getListWithFilter(filter: Filter<TBaseType>): Promise<TBaseType[]>;
89
96
  /**
90
97
  * Deletes a document by its ID.
91
98
  *
@@ -139,7 +146,7 @@ export default abstract class BaseRepository<TBaseType extends BaseDocument> {
139
146
  */
140
147
  protected fetchAndCacheDocsForMeta(docIds: UUID[], meta: DbOperationMetaData): Promise<TBaseType[]>;
141
148
  /**
142
- * Gets the filter with the default filter applied if there is one.
149
+ * Gets the filter with the default filter applied if there is one. This will "and" them together.
143
150
  *
144
151
  * @param filter - The filter to apply.
145
152
  * @returns The filter with the default filter applied.
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
@@ -147,6 +147,17 @@ export default class BaseRepository {
147
147
  .toArray();
148
148
  return result;
149
149
  }
150
+ /**
151
+ * Gets a list of documents matching the given filter. This will and it together with the
152
+ * default filter.
153
+ *
154
+ * @param filter - The filter to apply.
155
+ */
156
+ async getListWithFilter(filter) {
157
+ const collection = await this.getCollection();
158
+ const result = await collection.find(this.getFilterWithDefault(filter)).toArray();
159
+ return result;
160
+ }
150
161
  /**
151
162
  * Deletes a document by its ID.
152
163
  *
@@ -261,7 +272,7 @@ export default class BaseRepository {
261
272
  return cachedDocs;
262
273
  }
263
274
  /**
264
- * Gets the filter with the default filter applied if there is one.
275
+ * Gets the filter with the default filter applied if there is one. This will "and" them together.
265
276
  *
266
277
  * @param filter - The filter to apply.
267
278
  * @returns The filter with the default filter applied.
@@ -270,6 +281,7 @@ export default class BaseRepository {
270
281
  if (!this.defaultFilter) {
271
282
  return filter;
272
283
  }
284
+ // Two merged filters is the same as using `$and`
273
285
  return { ...filter, ...this.defaultFilter };
274
286
  }
275
287
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
@@ -178,6 +178,18 @@ export default abstract class BaseRepository<TBaseType extends BaseDocument> {
178
178
  return result as TBaseType[];
179
179
  }
180
180
 
181
+ /**
182
+ * Gets a list of documents matching the given filter. This will and it together with the
183
+ * default filter.
184
+ *
185
+ * @param filter - The filter to apply.
186
+ */
187
+ async getListWithFilter(filter: Filter<TBaseType>): Promise<TBaseType[]> {
188
+ const collection = await this.getCollection();
189
+ const result = await collection.find(this.getFilterWithDefault(filter)).toArray();
190
+ return result as TBaseType[];
191
+ }
192
+
181
193
  /**
182
194
  * Deletes a document by its ID.
183
195
  *
@@ -314,7 +326,7 @@ export default abstract class BaseRepository<TBaseType extends BaseDocument> {
314
326
  }
315
327
 
316
328
  /**
317
- * Gets the filter with the default filter applied if there is one.
329
+ * Gets the filter with the default filter applied if there is one. This will "and" them together.
318
330
  *
319
331
  * @param filter - The filter to apply.
320
332
  * @returns The filter with the default filter applied.
@@ -323,6 +335,7 @@ export default abstract class BaseRepository<TBaseType extends BaseDocument> {
323
335
  if (!this.defaultFilter) {
324
336
  return filter;
325
337
  }
338
+ // Two merged filters is the same as using `$and`
326
339
  return { ...filter, ...this.defaultFilter };
327
340
  }
328
341
 
@@ -1 +1 @@
1
- {"version":3,"file":"UserRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAOlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAW;IAEzC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D,OAAO;IAIP,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAQlC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAO1B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW/D,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAO5D"}
1
+ {"version":3,"file":"UserRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAalD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAW;IAEzC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D,OAAO;IAIP,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAclC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAO1B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW/D,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAO5D"}
@@ -4,6 +4,12 @@ import DashboardNonogramKatanaItemRepository from '../dashboard/DashboardNonogra
4
4
  import DashboardNonogramKatanaUpgradeRepository from '../dashboard/DashboardNonogramKatanaUpgradeRepository.js';
5
5
  import DashboardTaskRepository from '../dashboard/DashboardTaskRepository.js';
6
6
  import DashboardUserConfigRepository from '../dashboard/DashboardUserConfigRepository.js';
7
+ import WorkoutEquipmentTypeRepository from '../workout/WorkoutEquipmentTypeRepository.js';
8
+ import WorkoutExerciseCalibrationRepository from '../workout/WorkoutExerciseCalibrationRepository.js';
9
+ import WorkoutExerciseRepository from '../workout/WorkoutExerciseRepository.js';
10
+ import WorkoutMesocycleRepository from '../workout/WorkoutMesocycleRepository.js';
11
+ import WorkoutMicrocycleRepository from '../workout/WorkoutMicrocycleRepository.js';
12
+ import WorkoutMuscleGroupRepository from '../workout/WorkoutMuscleGroupRepository.js';
7
13
  import ApiKeyRepository from './ApiKeyRepository.js';
8
14
  /**
9
15
  * The repository that contains {@link User} documents.
@@ -20,6 +26,12 @@ export default class UserRepository extends BaseRepository {
20
26
  this.subscribeToChanges(DashboardTaskRepository.getListenersForUserRepo());
21
27
  this.subscribeToChanges(DashboardNonogramKatanaItemRepository.getListenersForUserRepo());
22
28
  this.subscribeToChanges(DashboardNonogramKatanaUpgradeRepository.getListenersForUserRepo());
29
+ this.subscribeToChanges(WorkoutMuscleGroupRepository.getListenersForUserRepo());
30
+ this.subscribeToChanges(WorkoutEquipmentTypeRepository.getListenersForUserRepo());
31
+ this.subscribeToChanges(WorkoutExerciseRepository.getListenersForUserRepo());
32
+ this.subscribeToChanges(WorkoutExerciseCalibrationRepository.getListenersForUserRepo());
33
+ this.subscribeToChanges(WorkoutMesocycleRepository.getListenersForUserRepo());
34
+ this.subscribeToChanges(WorkoutMicrocycleRepository.getListenersForUserRepo());
23
35
  }
24
36
  /**
25
37
  * Gets the singleton instance of the {@link UserRepository}.
@@ -1 +1 @@
1
- {"version":3,"file":"UserRepository.js","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,qCAAqC,MAAM,uDAAuD,CAAC;AAC1G,OAAO,wCAAwC,MAAM,0DAA0D,CAAC;AAChH,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,6BAA6B,MAAM,+CAA+C,CAAC;AAC1F,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAoB;IACtD,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;IAEjC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D;QACE,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,CAAC,qCAAqC,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YACtC,cAAc,CAAC,iBAAiB,GAAG,IAAI,cAAc,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,cAAc,CAAC,iBAAiB,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC,CAAC;IACN,CAAC"}
1
+ {"version":3,"file":"UserRepository.js","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ import DashboardNonogramKatanaItemRepository from '../dashboard/DashboardNonogra
6
6
  import DashboardNonogramKatanaUpgradeRepository from '../dashboard/DashboardNonogramKatanaUpgradeRepository.js';
7
7
  import DashboardTaskRepository from '../dashboard/DashboardTaskRepository.js';
8
8
  import DashboardUserConfigRepository from '../dashboard/DashboardUserConfigRepository.js';
9
+ import WorkoutEquipmentTypeRepository from '../workout/WorkoutEquipmentTypeRepository.js';
10
+ import WorkoutExerciseCalibrationRepository from '../workout/WorkoutExerciseCalibrationRepository.js';
11
+ import WorkoutExerciseRepository from '../workout/WorkoutExerciseRepository.js';
12
+ import WorkoutMesocycleRepository from '../workout/WorkoutMesocycleRepository.js';
13
+ import WorkoutMicrocycleRepository from '../workout/WorkoutMicrocycleRepository.js';
14
+ import WorkoutMuscleGroupRepository from '../workout/WorkoutMuscleGroupRepository.js';
9
15
  import ApiKeyRepository from './ApiKeyRepository.js';
10
16
 
11
17
  /**
@@ -26,6 +32,12 @@ export default class UserRepository extends BaseRepository<User> {
26
32
  this.subscribeToChanges(DashboardTaskRepository.getListenersForUserRepo());
27
33
  this.subscribeToChanges(DashboardNonogramKatanaItemRepository.getListenersForUserRepo());
28
34
  this.subscribeToChanges(DashboardNonogramKatanaUpgradeRepository.getListenersForUserRepo());
35
+ this.subscribeToChanges(WorkoutMuscleGroupRepository.getListenersForUserRepo());
36
+ this.subscribeToChanges(WorkoutEquipmentTypeRepository.getListenersForUserRepo());
37
+ this.subscribeToChanges(WorkoutExerciseRepository.getListenersForUserRepo());
38
+ this.subscribeToChanges(WorkoutExerciseCalibrationRepository.getListenersForUserRepo());
39
+ this.subscribeToChanges(WorkoutMesocycleRepository.getListenersForUserRepo());
40
+ this.subscribeToChanges(WorkoutMicrocycleRepository.getListenersForUserRepo());
29
41
  }
30
42
 
31
43
  /**
@@ -15,11 +15,31 @@ export default abstract class DashboardBaseWithUserIdRepository<TBaseType extend
15
15
  * @param userId The ID of the user to get items for.
16
16
  */
17
17
  getAllForUser(userId: UUID): Promise<TBaseType[]>;
18
+ /**
19
+ * Gets all items for given users.
20
+ *
21
+ * @param userIds - The user IDs to get items for.
22
+ */
23
+ getAllForUsers(userIds: UUID[]): Promise<TBaseType[]>;
18
24
  insertNew(newDoc: TBaseType, meta?: DbOperationMetaData): Promise<TBaseType | null>;
19
25
  insertMany(newDocs: TBaseType[], meta?: DbOperationMetaData): Promise<TBaseType[]>;
20
26
  update(updatedDoc: Partial<TBaseType>, meta?: DbOperationMetaData): Promise<UpdateResult>;
21
27
  updateMany(updatedDocs: Partial<TBaseType>[], meta?: DbOperationMetaData): Promise<BulkWriteResult>;
22
28
  delete(docId: UUID, meta?: DbOperationMetaData): Promise<DeleteResult>;
23
29
  deleteList(docIds: UUID[], meta?: DbOperationMetaData): Promise<DeleteResult>;
30
+ /**
31
+ * Deletes all documents for a specific user.
32
+ *
33
+ * @param userId - The user ID to delete documents for.
34
+ * @param meta - Tracks database operation metadata for a single request.
35
+ */
36
+ deleteAllForUser(userId: UUID, meta?: DbOperationMetaData): Promise<DeleteResult>;
37
+ /**
38
+ * Deletes all documents for specific users.
39
+ *
40
+ * @param userIds - The user IDs to delete documents for.
41
+ * @param meta - Tracks database operation metadata for a single request.
42
+ */
43
+ deleteAllForUsers(userIds: UUID[], meta?: DbOperationMetaData): Promise<DeleteResult>;
24
44
  }
25
45
  //# sourceMappingURL=DashboardBaseWithUserIdRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardBaseWithUserIdRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardBaseWithUserIdRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,UAAU,MAAM,mCAAmC,CAAC;AAChE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iCAAiC,CAC7D,SAAS,SAAS,oBAAoB,GAAG,cAAc,CACvD,SAAQ,uBAAuB,CAAC,SAAS,CAAC;gBAExC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAChC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC;IAOjE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASxC,SAAS,CACtB,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAQb,UAAU,CACvB,OAAO,EAAE,SAAS,EAAE,EACpB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC;IAMR,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAC9B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,YAAY,CAAC;IAUT,UAAU,CACvB,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EACjC,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,eAAe,CAAC;IASZ,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAUtE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;CAO7F"}
1
+ {"version":3,"file":"DashboardBaseWithUserIdRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardBaseWithUserIdRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,UAAU,MAAM,mCAAmC,CAAC;AAChE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iCAAiC,CAC7D,SAAS,SAAS,oBAAoB,GAAG,cAAc,CACvD,SAAQ,uBAAuB,CAAC,SAAS,CAAC;gBAExC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAChC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC;IAOjE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAOvD;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5C,SAAS,CACtB,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAQb,UAAU,CACvB,OAAO,EAAE,SAAS,EAAE,EACpB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC;IAMR,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAC9B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,YAAY,CAAC;IAWT,UAAU,CACvB,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EACjC,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,eAAe,CAAC;IASZ,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAUtE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ5F;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIvF;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;CAO5F"}
@@ -14,12 +14,21 @@ export default class DashboardBaseWithUserIdRepository extends DashboardBaseRepo
14
14
  * @param userId The ID of the user to get items for.
15
15
  */
16
16
  async getAllForUser(userId) {
17
- const collection = await this.getCollection();
18
17
  const filter = {
19
- $and: [this.getFilterWithDefault(), { userId }]
18
+ userId
20
19
  };
21
- const result = await collection.find(filter).toArray();
22
- return result;
20
+ return this.getListWithFilter(filter);
21
+ }
22
+ /**
23
+ * Gets all items for given users.
24
+ *
25
+ * @param userIds - The user IDs to get items for.
26
+ */
27
+ async getAllForUsers(userIds) {
28
+ const filter = {
29
+ userId: { $in: userIds }
30
+ };
31
+ return this.getListWithFilter(filter);
23
32
  }
24
33
  async insertNew(newDoc, meta) {
25
34
  const result = await super.insertNew(newDoc, meta);
@@ -35,6 +44,7 @@ export default class DashboardBaseWithUserIdRepository extends DashboardBaseRepo
35
44
  }
36
45
  async update(updatedDoc, meta) {
37
46
  if (meta && updatedDoc._id) {
47
+ // We get the doc again, because it shouldn't include userId in the update doc.
38
48
  const docs = await this.fetchAndCacheDocsForMeta([updatedDoc._id], meta);
39
49
  if (docs.length > 0) {
40
50
  meta.addAffectedUserIds([docs[0].userId]);
@@ -66,5 +76,27 @@ export default class DashboardBaseWithUserIdRepository extends DashboardBaseRepo
66
76
  }
67
77
  return super.deleteList(docIds, meta);
68
78
  }
79
+ /**
80
+ * Deletes all documents for a specific user.
81
+ *
82
+ * @param userId - The user ID to delete documents for.
83
+ * @param meta - Tracks database operation metadata for a single request.
84
+ */
85
+ async deleteAllForUser(userId, meta) {
86
+ return this.deleteAllForUsers([userId], meta);
87
+ }
88
+ /**
89
+ * Deletes all documents for specific users.
90
+ *
91
+ * @param userIds - The user IDs to delete documents for.
92
+ * @param meta - Tracks database operation metadata for a single request.
93
+ */
94
+ async deleteAllForUsers(userIds, meta) {
95
+ const docsForUsers = await this.getAllForUsers(userIds);
96
+ meta?.recordDocTypeTouched(this.docType);
97
+ meta?.addAffectedUserIds(userIds);
98
+ const docIds = docsForUsers.map((doc) => doc._id);
99
+ return this.deleteList(docIds, meta);
100
+ }
69
101
  }
70
102
  //# sourceMappingURL=DashboardBaseWithUserIdRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardBaseWithUserIdRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardBaseWithUserIdRepository.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,iCAE5B,SAAQ,uBAAkC;IAC1C,YACE,OAAe,EACf,SAAgC,EAChC,aAA+D;QAE/D,MAAM,oBAAoB,GAAG,CAAC,GAAuB,EAAE,EAAE,CACvD,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvF,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,MAAY;QAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SAC3B,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,MAAqB,CAAC;IAC/B,CAAC;IAEQ,KAAK,CAAC,SAAS,CACtB,MAAiB,EACjB,IAA0B;QAE1B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,OAAoB,EACpB,IAA0B;QAE1B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,KAAK,CAAC,MAAM,CACnB,UAA8B,EAC9B,IAA0B;QAE1B,IAAI,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,UAAU,CACvB,WAAiC,EACjC,IAA0B;QAE1B,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAc,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAC9F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAW,EAAE,IAA0B;QAC3D,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,IAA0B;QAClE,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"DashboardBaseWithUserIdRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardBaseWithUserIdRepository.ts"],"names":[],"mappings":"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"}
@@ -28,12 +28,22 @@ export default abstract class DashboardBaseWithUserIdRepository<
28
28
  * @param userId The ID of the user to get items for.
29
29
  */
30
30
  async getAllForUser(userId: UUID): Promise<TBaseType[]> {
31
- const collection = await this.getCollection();
32
31
  const filter = {
33
- $and: [this.getFilterWithDefault(), { userId }]
32
+ userId
34
33
  } as Filter<TBaseType>;
35
- const result = await collection.find(filter).toArray();
36
- return result as TBaseType[];
34
+ return this.getListWithFilter(filter);
35
+ }
36
+
37
+ /**
38
+ * Gets all items for given users.
39
+ *
40
+ * @param userIds - The user IDs to get items for.
41
+ */
42
+ async getAllForUsers(userIds: UUID[]): Promise<TBaseType[]> {
43
+ const filter = {
44
+ userId: { $in: userIds }
45
+ } as Filter<TBaseType>;
46
+ return this.getListWithFilter(filter);
37
47
  }
38
48
 
39
49
  override async insertNew(
@@ -61,6 +71,7 @@ export default abstract class DashboardBaseWithUserIdRepository<
61
71
  meta?: DbOperationMetaData
62
72
  ): Promise<UpdateResult> {
63
73
  if (meta && updatedDoc._id) {
74
+ // We get the doc again, because it shouldn't include userId in the update doc.
64
75
  const docs = await this.fetchAndCacheDocsForMeta([updatedDoc._id], meta);
65
76
  if (docs.length > 0) {
66
77
  meta.addAffectedUserIds([docs[0].userId]);
@@ -98,4 +109,28 @@ export default abstract class DashboardBaseWithUserIdRepository<
98
109
  }
99
110
  return super.deleteList(docIds, meta);
100
111
  }
112
+
113
+ /**
114
+ * Deletes all documents for a specific user.
115
+ *
116
+ * @param userId - The user ID to delete documents for.
117
+ * @param meta - Tracks database operation metadata for a single request.
118
+ */
119
+ async deleteAllForUser(userId: UUID, meta?: DbOperationMetaData): Promise<DeleteResult> {
120
+ return this.deleteAllForUsers([userId], meta);
121
+ }
122
+
123
+ /**
124
+ * Deletes all documents for specific users.
125
+ *
126
+ * @param userIds - The user IDs to delete documents for.
127
+ * @param meta - Tracks database operation metadata for a single request.
128
+ */
129
+ async deleteAllForUsers(userIds: UUID[], meta?: DbOperationMetaData): Promise<DeleteResult> {
130
+ const docsForUsers = await this.getAllForUsers(userIds);
131
+ meta?.recordDocTypeTouched(this.docType);
132
+ meta?.addAffectedUserIds(userIds);
133
+ const docIds = docsForUsers.map((doc) => doc._id);
134
+ return this.deleteList(docIds, meta);
135
+ }
101
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaItemRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,iCAAiC,CAAC,kBAAkB,CAAC;IACtH,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAwC;IAEzE,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IA0BrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,qCAAqC;CAO/D"}
1
+ {"version":3,"file":"DashboardNonogramKatanaItemRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,iCAAiC,CAAC,kBAAkB,CAAC;IACtH,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAwC;IAEzE,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,qCAAqC;CAO/D"}
@@ -13,20 +13,10 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
13
13
  const nonogramKatanaRepo = DashboardNonogramKatanaItemRepository.getRepo();
14
14
  return {
15
15
  deleteOne: async (userId, meta) => {
16
- await (await nonogramKatanaRepo.getCollection()).deleteMany({
17
- userId,
18
- docType: NonogramKatanaItem_docType
19
- });
20
- meta?.recordDocTypeTouched(NonogramKatanaItem_docType);
21
- meta?.addAffectedUserIds([userId]);
16
+ await nonogramKatanaRepo.deleteAllForUser(userId, meta);
22
17
  },
23
18
  deleteList: async (userIds, meta) => {
24
- await (await nonogramKatanaRepo.getCollection()).deleteMany({
25
- userId: { $in: userIds },
26
- docType: NonogramKatanaItem_docType
27
- });
28
- meta?.recordDocTypeTouched(NonogramKatanaItem_docType);
29
- meta?.addAffectedUserIds(userIds);
19
+ await nonogramKatanaRepo.deleteAllForUsers(userIds, meta);
30
20
  }
31
21
  };
32
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaItemRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,oCAAoC,MAAM,2DAA2D,CAAC;AAC7G,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,iCAAqD;IAC9G,MAAM,CAAC,iBAAiB,CAAyC;IAEzE;QACE,KAAK,CAAC,0BAA0B,EAAE,IAAI,oCAAoC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,kBAAkB,GAAG,qCAAqC,CAAC,OAAO,EAAE,CAAC;QAC3E,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,CACJ,MAAM,kBAAkB,CAAC,aAAa,EAAE,CACzC,CAAC,UAAU,CAAC;oBACX,MAAM;oBACN,OAAO,EAAE,0BAA0B;iBACpC,CAAC,CAAC;gBACH,IAAI,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;gBACvD,IAAI,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,CACJ,MAAM,kBAAkB,CAAC,aAAa,EAAE,CACzC,CAAC,UAAU,CAAC;oBACX,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;oBACxB,OAAO,EAAE,0BAA0B;iBACpC,CAAC,CAAC;gBACH,IAAI,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;gBACvD,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,qCAAqC,CAAC,iBAAiB,EAAE,CAAC;YAC7D,qCAAqC,CAAC,iBAAiB;gBACrD,IAAI,qCAAqC,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,qCAAqC,CAAC,iBAAiB,CAAC;IACjE,CAAC;CACF"}
1
+ {"version":3,"file":"DashboardNonogramKatanaItemRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,oCAAoC,MAAM,2DAA2D,CAAC;AAC7G,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,iCAAqD;IAC9G,MAAM,CAAC,iBAAiB,CAAyC;IAEzE;QACE,KAAK,CAAC,0BAA0B,EAAE,IAAI,oCAAoC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,kBAAkB,GAAG,qCAAqC,CAAC,OAAO,EAAE,CAAC;QAC3E,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,qCAAqC,CAAC,iBAAiB,EAAE,CAAC;YAC7D,qCAAqC,CAAC,iBAAiB;gBACrD,IAAI,qCAAqC,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,qCAAqC,CAAC,iBAAiB,CAAC;IACjE,CAAC;CACF"}
@@ -18,24 +18,10 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
18
18
  const nonogramKatanaRepo = DashboardNonogramKatanaItemRepository.getRepo();
19
19
  return {
20
20
  deleteOne: async (userId, meta) => {
21
- await (
22
- await nonogramKatanaRepo.getCollection()
23
- ).deleteMany({
24
- userId,
25
- docType: NonogramKatanaItem_docType
26
- });
27
- meta?.recordDocTypeTouched(NonogramKatanaItem_docType);
28
- meta?.addAffectedUserIds([userId]);
21
+ await nonogramKatanaRepo.deleteAllForUser(userId, meta);
29
22
  },
30
23
  deleteList: async (userIds, meta) => {
31
- await (
32
- await nonogramKatanaRepo.getCollection()
33
- ).deleteMany({
34
- userId: { $in: userIds },
35
- docType: NonogramKatanaItem_docType
36
- });
37
- meta?.recordDocTypeTouched(NonogramKatanaItem_docType);
38
- meta?.addAffectedUserIds(userIds);
24
+ await nonogramKatanaRepo.deleteAllForUsers(userIds, meta);
39
25
  }
40
26
  };
41
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,iCAAiC,CAAC,qBAAqB,CAAC;IAC5H,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAuD;IAEvF,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IA0BrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,wCAAwC;CAOlE"}
1
+ {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,iCAAiC,CAAC,qBAAqB,CAAC;IAC5H,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAuD;IAEvF,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,wCAAwC;CAOlE"}
@@ -13,20 +13,10 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
13
13
  const upgradeRepo = DashboardNonogramKatanaUpgradeRepository.getRepo();
14
14
  return {
15
15
  deleteOne: async (userId, meta) => {
16
- await (await upgradeRepo.getCollection()).deleteMany({
17
- userId,
18
- docType: NonogramKatanaUpgrade_docType
19
- });
20
- meta?.recordDocTypeTouched(NonogramKatanaUpgrade_docType);
21
- meta?.addAffectedUserIds([userId]);
16
+ await upgradeRepo.deleteAllForUser(userId, meta);
22
17
  },
23
18
  deleteList: async (userIds, meta) => {
24
- await (await upgradeRepo.getCollection()).deleteMany({
25
- userId: { $in: userIds },
26
- docType: NonogramKatanaUpgrade_docType
27
- });
28
- meta?.recordDocTypeTouched(NonogramKatanaUpgrade_docType);
29
- meta?.addAffectedUserIds(userIds);
19
+ await upgradeRepo.deleteAllForUsers(userIds, meta);
30
20
  }
31
21
  };
32
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,uCAAuC,MAAM,8DAA8D,CAAC;AACnH,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,iCAAwD;IACpH,MAAM,CAAC,iBAAiB,CAAuD;IAEvF;QACE,KAAK,CAAC,6BAA6B,EAAE,IAAI,uCAAuC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,WAAW,GAAG,wCAAwC,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,CACJ,MAAM,WAAW,CAAC,aAAa,EAAE,CAClC,CAAC,UAAU,CAAC;oBACX,MAAM;oBACN,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;gBACH,IAAI,EAAE,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;gBAC1D,IAAI,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,CACJ,MAAM,WAAW,CAAC,aAAa,EAAE,CAClC,CAAC,UAAU,CAAC;oBACX,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;oBACxB,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;gBACH,IAAI,EAAE,oBAAoB,CAAC,6BAA6B,CAAC,CAAC;gBAC1D,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,wCAAwC,CAAC,iBAAiB,EAAE,CAAC;YAChE,wCAAwC,CAAC,iBAAiB;gBACxD,IAAI,wCAAwC,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,wCAAwC,CAAC,iBAAiB,CAAC;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,uCAAuC,MAAM,8DAA8D,CAAC;AACnH,OAAO,iCAAiC,MAAM,wCAAwC,CAAC;AAEvF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,iCAAwD;IACpH,MAAM,CAAC,iBAAiB,CAAuD;IAEvF;QACE,KAAK,CAAC,6BAA6B,EAAE,IAAI,uCAAuC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,WAAW,GAAG,wCAAwC,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,wCAAwC,CAAC,iBAAiB,EAAE,CAAC;YAChE,wCAAwC,CAAC,iBAAiB;gBACxD,IAAI,wCAAwC,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,wCAAwC,CAAC,iBAAiB,CAAC;IACpE,CAAC;CACF"}
@@ -18,24 +18,10 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
18
18
  const upgradeRepo = DashboardNonogramKatanaUpgradeRepository.getRepo();
19
19
  return {
20
20
  deleteOne: async (userId, meta) => {
21
- await (
22
- await upgradeRepo.getCollection()
23
- ).deleteMany({
24
- userId,
25
- docType: NonogramKatanaUpgrade_docType
26
- });
27
- meta?.recordDocTypeTouched(NonogramKatanaUpgrade_docType);
28
- meta?.addAffectedUserIds([userId]);
21
+ await upgradeRepo.deleteAllForUser(userId, meta);
29
22
  },
30
23
  deleteList: async (userIds, meta) => {
31
- await (
32
- await upgradeRepo.getCollection()
33
- ).deleteMany({
34
- userId: { $in: userIds },
35
- docType: NonogramKatanaUpgrade_docType
36
- });
37
- meta?.recordDocTypeTouched(NonogramKatanaUpgrade_docType);
38
- meta?.addAffectedUserIds(userIds);
24
+ await upgradeRepo.deleteAllForUsers(userIds, meta);
39
25
  }
40
26
  };
41
27
  }
@@ -65,5 +65,19 @@ export default class DashboardTaskRepository extends DashboardBaseWithUserIdRepo
65
65
  * @returns The list of task IDs to delete.
66
66
  */
67
67
  private getAllTaskIDsToDelete;
68
+ /**
69
+ * Deletes all tasks for a user and cleans up assignedTo references.
70
+ *
71
+ * @param userId - The user ID to delete tasks for.
72
+ * @param meta - Tracks database operation metadata for a single request.
73
+ */
74
+ deleteAllForUserWithCleanup(userId: UUID, meta?: DbOperationMetaData): Promise<void>;
75
+ /**
76
+ * Deletes all tasks for users and cleans up assignedTo references.
77
+ *
78
+ * @param userIds - The user IDs to delete tasks for.
79
+ * @param meta - Tracks database operation metadata for a single request.
80
+ */
81
+ deleteAllForUsersWithCleanup(userIds: UUID[], meta?: DbOperationMetaData): Promise<void>;
68
82
  }
69
83
  //# sourceMappingURL=DashboardTaskRepository.d.ts.map