@lilaquadrat/studio 13.0.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/lib/helpers.d.ts +3 -2
  2. package/lib/helpers.js +3 -2
  3. package/lib/helpers.js.map +1 -1
  4. package/lib/models.d.ts +6 -4
  5. package/lib/models.js +5 -2
  6. package/lib/models.js.map +1 -1
  7. package/lib/services.d.ts +7 -1
  8. package/lib/services.js +6 -1
  9. package/lib/services.js.map +1 -1
  10. package/lib/src/Immutable.class.d.ts +0 -1
  11. package/lib/src/Immutable.class.js.map +1 -1
  12. package/lib/src/aggegations/genericData.aggregation.js +1 -1
  13. package/lib/src/aggegations/genericData.aggregation.js.map +1 -1
  14. package/lib/src/classes/paymentProviders/PaymentProviderFactory.class.d.ts +1 -1
  15. package/lib/src/classes/paymentProviders/StripePaymentProvider.class.d.ts +1 -1
  16. package/lib/src/helpers/createError.d.ts +1 -1
  17. package/lib/src/helpers/escapeRegExp.d.ts +2 -0
  18. package/lib/src/helpers/escapeRegExp.js +5 -0
  19. package/lib/src/helpers/escapeRegExp.js.map +1 -0
  20. package/lib/src/helpers/permissionScopes.d.ts +6 -0
  21. package/lib/src/helpers/permissionScopes.js +289 -0
  22. package/lib/src/helpers/permissionScopes.js.map +1 -0
  23. package/lib/src/helpers/shiftPlanAllocation.d.ts +2 -38
  24. package/lib/src/helpers/shiftPlanAllocation.js.map +1 -1
  25. package/lib/src/helpers/shiftPlanCoverage.d.ts +0 -1
  26. package/lib/src/helpers/shiftPlanningSchemas.d.ts +6 -0
  27. package/lib/src/helpers/shiftPlanningSchemas.js +1 -0
  28. package/lib/src/helpers/shiftPlanningSchemas.js.map +1 -1
  29. package/lib/src/helpers/structureMatch.d.ts +1 -5
  30. package/lib/src/helpers/structureMatch.js.map +1 -1
  31. package/lib/src/helpers/verifyToken.d.ts +1 -8
  32. package/lib/src/helpers/verifyToken.js.map +1 -1
  33. package/lib/src/models/access.model.d.ts +1 -12
  34. package/lib/src/models/access.model.js.map +1 -1
  35. package/lib/src/models/cart.model.js +36 -1
  36. package/lib/src/models/cart.model.js.map +1 -1
  37. package/lib/src/models/editor.model.js +2 -0
  38. package/lib/src/models/editor.model.js.map +1 -1
  39. package/lib/src/models/environment.model.d.ts +4 -0
  40. package/lib/src/models/environment.model.js +47 -0
  41. package/lib/src/models/environment.model.js.map +1 -0
  42. package/lib/src/models/id.model.d.ts +2 -12
  43. package/lib/src/models/id.model.js.map +1 -1
  44. package/lib/src/models/migration.model.d.ts +22 -0
  45. package/lib/src/models/migration.model.js +51 -0
  46. package/lib/src/models/migration.model.js.map +1 -0
  47. package/lib/src/models/participant.model.d.ts +1 -1
  48. package/lib/src/models/participant.model.js +1 -1
  49. package/lib/src/models/participant.model.js.map +1 -1
  50. package/lib/src/models/permissions.model.d.ts +1 -6
  51. package/lib/src/models/permissions.model.js +0 -275
  52. package/lib/src/models/permissions.model.js.map +1 -1
  53. package/lib/src/models/project.model.js +142 -35
  54. package/lib/src/models/project.model.js.map +1 -1
  55. package/lib/src/models/publish.model.js +1 -0
  56. package/lib/src/models/publish.model.js.map +1 -1
  57. package/lib/src/models/shift.model.js +1 -1
  58. package/lib/src/models/shift.model.js.map +1 -1
  59. package/lib/src/models/timeTrackingProject.model.d.ts +4 -0
  60. package/lib/src/models/timeTrackingProject.model.js +57 -0
  61. package/lib/src/models/timeTrackingProject.model.js.map +1 -0
  62. package/lib/src/models/timeTrackingProjectAllocation.model.d.ts +4 -0
  63. package/lib/src/models/timeTrackingProjectAllocation.model.js +38 -0
  64. package/lib/src/models/timeTrackingProjectAllocation.model.js.map +1 -0
  65. package/lib/src/models/tracker.model.js +18 -2
  66. package/lib/src/models/tracker.model.js.map +1 -1
  67. package/lib/src/services/access.service.js.map +1 -1
  68. package/lib/src/services/cart.service.d.ts +7 -1
  69. package/lib/src/services/cart.service.js +29 -3
  70. package/lib/src/services/cart.service.js.map +1 -1
  71. package/lib/src/services/environments.service.d.ts +15 -0
  72. package/lib/src/services/environments.service.js +20 -0
  73. package/lib/src/services/environments.service.js.map +1 -0
  74. package/lib/src/services/history.service.d.ts +1 -2
  75. package/lib/src/services/history.service.js.map +1 -1
  76. package/lib/src/services/historySeen.service.d.ts +1 -8
  77. package/lib/src/services/historySeen.service.js.map +1 -1
  78. package/lib/src/services/id.service.d.ts +1 -1
  79. package/lib/src/services/listParticipants.service.d.ts +3 -4
  80. package/lib/src/services/listParticipants.service.js +4 -4
  81. package/lib/src/services/listParticipants.service.js.map +1 -1
  82. package/lib/src/services/lists.service.js +33 -0
  83. package/lib/src/services/lists.service.js.map +1 -1
  84. package/lib/src/services/migrations.service.d.ts +60 -0
  85. package/lib/src/services/migrations.service.js +221 -0
  86. package/lib/src/services/migrations.service.js.map +1 -0
  87. package/lib/src/services/participants.service.d.ts +1 -1
  88. package/lib/src/services/permissions.service.d.ts +1 -1
  89. package/lib/src/services/permissions.service.js +2 -1
  90. package/lib/src/services/permissions.service.js.map +1 -1
  91. package/lib/src/services/shiftPlans.service.d.ts +1 -1
  92. package/lib/src/services/shiftPlans.service.js +10 -4
  93. package/lib/src/services/shiftPlans.service.js.map +1 -1
  94. package/lib/src/services/shifts.service.d.ts +4 -1
  95. package/lib/src/services/shifts.service.js +25 -6
  96. package/lib/src/services/shifts.service.js.map +1 -1
  97. package/lib/src/services/timeTrackingProjectAllocations.service.d.ts +20 -0
  98. package/lib/src/services/timeTrackingProjectAllocations.service.js +85 -0
  99. package/lib/src/services/timeTrackingProjectAllocations.service.js.map +1 -0
  100. package/lib/src/services/timeTrackingProjects.service.d.ts +18 -0
  101. package/lib/src/services/timeTrackingProjects.service.js +78 -0
  102. package/lib/src/services/timeTrackingProjects.service.js.map +1 -0
  103. package/lib/src/services/tracker.service.d.ts +153 -0
  104. package/lib/src/services/tracker.service.js +741 -0
  105. package/lib/src/services/tracker.service.js.map +1 -0
  106. package/lib/tests/cartModel.spec.d.ts +1 -0
  107. package/lib/tests/cartModel.spec.js +13 -0
  108. package/lib/tests/cartModel.spec.js.map +1 -0
  109. package/lib/tests/getUnsetObject.spec.js +3 -0
  110. package/lib/tests/getUnsetObject.spec.js.map +1 -1
  111. package/lib/tests/listParticipantsServiceJoin.spec.js +48 -0
  112. package/lib/tests/listParticipantsServiceJoin.spec.js.map +1 -1
  113. package/lib/tests/listsSingle.spec.d.ts +1 -0
  114. package/lib/tests/listsSingle.spec.js +56 -0
  115. package/lib/tests/listsSingle.spec.js.map +1 -0
  116. package/lib/tests/migrationModel.spec.d.ts +1 -0
  117. package/lib/tests/migrationModel.spec.js +38 -0
  118. package/lib/tests/migrationModel.spec.js.map +1 -0
  119. package/lib/tests/migrationsService.spec.d.ts +1 -0
  120. package/lib/tests/migrationsService.spec.js +163 -0
  121. package/lib/tests/migrationsService.spec.js.map +1 -0
  122. package/lib/tests/permissionsModel.spec.js +1 -1
  123. package/lib/tests/shiftPlanCoverage.spec.js.map +1 -1
  124. package/lib/tests/shiftPlanning.spec.js +63 -11
  125. package/lib/tests/shiftPlanning.spec.js.map +1 -1
  126. package/lib/tests/shiftPlansList.spec.js +1 -1
  127. package/lib/tests/shiftPlansList.spec.js.map +1 -1
  128. package/lib/tests/timeTrackingProjectAllocationModel.spec.d.ts +1 -0
  129. package/lib/tests/timeTrackingProjectAllocationModel.spec.js +54 -0
  130. package/lib/tests/timeTrackingProjectAllocationModel.spec.js.map +1 -0
  131. package/lib/tests/timeTrackingProjectAllocationsService.spec.d.ts +1 -0
  132. package/lib/tests/timeTrackingProjectAllocationsService.spec.js +153 -0
  133. package/lib/tests/timeTrackingProjectAllocationsService.spec.js.map +1 -0
  134. package/lib/tests/timeTrackingProjectModel.spec.d.ts +1 -0
  135. package/lib/tests/timeTrackingProjectModel.spec.js +151 -0
  136. package/lib/tests/timeTrackingProjectModel.spec.js.map +1 -0
  137. package/lib/tests/timeTrackingProjectsService.spec.d.ts +1 -0
  138. package/lib/tests/timeTrackingProjectsService.spec.js +256 -0
  139. package/lib/tests/timeTrackingProjectsService.spec.js.map +1 -0
  140. package/lib/tests/trackerAllUsers.spec.d.ts +1 -0
  141. package/lib/tests/trackerAllUsers.spec.js +46 -0
  142. package/lib/tests/trackerAllUsers.spec.js.map +1 -0
  143. package/lib/tests/trackerAllocationUsage.spec.d.ts +1 -0
  144. package/lib/tests/trackerAllocationUsage.spec.js +36 -0
  145. package/lib/tests/trackerAllocationUsage.spec.js.map +1 -0
  146. package/lib/tests/trackerBookings.spec.d.ts +1 -0
  147. package/lib/tests/trackerBookings.spec.js +67 -0
  148. package/lib/tests/trackerBookings.spec.js.map +1 -0
  149. package/lib/tests/trackerCategories.spec.d.ts +1 -0
  150. package/lib/tests/trackerCategories.spec.js +40 -0
  151. package/lib/tests/trackerCategories.spec.js.map +1 -0
  152. package/lib/tests/trackerDailyLimit.spec.d.ts +1 -0
  153. package/lib/tests/trackerDailyLimit.spec.js +84 -0
  154. package/lib/tests/trackerDailyLimit.spec.js.map +1 -0
  155. package/lib/tests/trackerModel.spec.d.ts +1 -0
  156. package/lib/tests/trackerModel.spec.js +73 -0
  157. package/lib/tests/trackerModel.spec.js.map +1 -0
  158. package/lib/tests/trackerResolveUser.spec.d.ts +1 -0
  159. package/lib/tests/trackerResolveUser.spec.js +26 -0
  160. package/lib/tests/trackerResolveUser.spec.js.map +1 -0
  161. package/lib/tests/trackerShiftAssignment.spec.d.ts +1 -0
  162. package/lib/tests/trackerShiftAssignment.spec.js +125 -0
  163. package/lib/tests/trackerShiftAssignment.spec.js.map +1 -0
  164. package/lib/tests/trackerShiftBookings.spec.d.ts +1 -0
  165. package/lib/tests/trackerShiftBookings.spec.js +58 -0
  166. package/lib/tests/trackerShiftBookings.spec.js.map +1 -0
  167. package/lib/tests/trackerShiftPlans.spec.d.ts +1 -0
  168. package/lib/tests/trackerShiftPlans.spec.js +251 -0
  169. package/lib/tests/trackerShiftPlans.spec.js.map +1 -0
  170. package/lib/tests/trackerWholePlanStatistics.spec.d.ts +1 -0
  171. package/lib/tests/trackerWholePlanStatistics.spec.js +41 -0
  172. package/lib/tests/trackerWholePlanStatistics.spec.js.map +1 -0
  173. package/package.json +2 -2
  174. package/lib/src/interfaces/ListPlanningParticipant.d.ts +0 -17
  175. package/lib/src/interfaces/ListPlanningParticipant.js +0 -2
  176. package/lib/src/interfaces/ListPlanningParticipant.js.map +0 -1
  177. package/lib/src/interfaces/Participant.d.ts +0 -62
  178. package/lib/src/interfaces/Participant.js +0 -4
  179. package/lib/src/interfaces/Participant.js.map +0 -1
  180. package/lib/src/interfaces/PaymentProviderBase.d.ts +0 -14
  181. package/lib/src/interfaces/PaymentProviderBase.js +0 -2
  182. package/lib/src/interfaces/PaymentProviderBase.js.map +0 -1
  183. package/lib/src/interfaces/PlanCoveragePreparation.d.ts +0 -17
  184. package/lib/src/interfaces/PlanCoveragePreparation.js +0 -2
  185. package/lib/src/interfaces/PlanCoveragePreparation.js.map +0 -1
  186. package/lib/src/interfaces/PlanningParticipantsResult.d.ts +0 -12
  187. package/lib/src/interfaces/PlanningParticipantsResult.js +0 -2
  188. package/lib/src/interfaces/PlanningParticipantsResult.js.map +0 -1
  189. package/lib/src/interfaces/ShiftAutofillResult.d.ts +0 -6
  190. package/lib/src/interfaces/ShiftAutofillResult.js +0 -2
  191. package/lib/src/interfaces/ShiftAutofillResult.js.map +0 -1
  192. package/lib/src/interfaces/ShiftReportContextOptions.d.ts +0 -9
  193. package/lib/src/interfaces/ShiftReportContextOptions.js +0 -2
  194. package/lib/src/interfaces/ShiftReportContextOptions.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerShiftPlans.spec.js","sourceRoot":"","sources":["../../tests/trackerShiftPlans.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,41 @@
1
+ import { afterEach, describe, expect, it, jest } from '@jest/globals';
2
+ import TrackerModel from '../src/models/tracker.model';
3
+ import trackerService from '../src/services/tracker.service';
4
+ const mockBuckets = (buckets) => {
5
+ const aggregate = jest.fn(() => ({ toArray: async () => buckets }));
6
+ jest.spyOn(TrackerModel, 'db', 'get').mockReturnValue({ aggregate });
7
+ return aggregate;
8
+ };
9
+ const filterOf = (aggregate) => aggregate.mock.calls[0][0][0].$match;
10
+ describe('TrackerService statistics of the whole plan', () => {
11
+ afterEach(() => {
12
+ jest.restoreAllMocks();
13
+ });
14
+ it('does not filter by month', async () => {
15
+ const aggregate = mockBuckets([]);
16
+ await trackerService.statistics('anna', 'company', 'project', 'plan', { month: 10, year: 2026, wholePlan: true });
17
+ expect(filterOf(aggregate)).toEqual({
18
+ company: 'company', project: 'project', user: 'anna', timeTrackingProject: 'plan',
19
+ });
20
+ });
21
+ it('keeps the month filter without the whole plan flag', async () => {
22
+ const aggregate = mockBuckets([]);
23
+ await trackerService.statistics('anna', 'company', 'project', 'plan', { month: 10, year: 2026 });
24
+ expect(filterOf(aggregate)).toHaveProperty('startTime');
25
+ });
26
+ it('spans start and end over the booked entries', async () => {
27
+ mockBuckets([
28
+ {
29
+ _id: { day: '2026-03-05', group: 'cat-1' }, count: 1, time: 3600000, first: new Date('2026-03-05T08:00:00.000Z'), last: new Date('2026-03-05T08:00:00.000Z'),
30
+ },
31
+ {
32
+ _id: { day: '2026-10-06', group: 'cat-1' }, count: 1, time: 3600000, first: new Date('2026-10-06T08:00:00.000Z'), last: new Date('2026-10-06T08:00:00.000Z'),
33
+ },
34
+ ]);
35
+ const result = await trackerService.statistics('anna', 'company', 'project', 'plan', { wholePlan: true });
36
+ expect(result.start).toEqual(new Date('2026-03-05T08:00:00.000Z'));
37
+ expect(result.end).toEqual(new Date('2026-10-06T08:00:00.000Z'));
38
+ expect(result.count).toBe(2);
39
+ });
40
+ });
41
+ //# sourceMappingURL=trackerWholePlanStatistics.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerWholePlanStatistics.spec.js","sourceRoot":"","sources":["../../tests/trackerWholePlanStatistics.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lilaquadrat/studio",
3
- "version": "13.0.1",
3
+ "version": "14.0.0",
4
4
  "description": "classes and tools for STUDIO",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -118,7 +118,7 @@
118
118
  },
119
119
  "dependencies": {
120
120
  "@google/genai": "^1.42.0",
121
- "@lilaquadrat/interfaces": "^1.56.0",
121
+ "@lilaquadrat/interfaces": "^2.0.0",
122
122
  "@lilaquadrat/storage-sdk": "^0.1.15",
123
123
  "@nats-io/jetstream": "^3.2.0",
124
124
  "@nats-io/transport-node": "^3.2.0",
@@ -1,17 +0,0 @@
1
- import type { ListParticipantMatch, ListParticipants } from '@lilaquadrat/interfaces';
2
- import type { ObjectId } from 'mongodb';
3
- export interface ListPlanningParticipant {
4
- _id: ObjectId;
5
- category?: string;
6
- state: ListParticipants['state'];
7
- match: ListParticipantMatch & {
8
- /** Relative to the full filtered pool; tied-only pools share stage 4. */
9
- normalizedScore: 1 | 2 | 3 | 4;
10
- };
11
- user?: {
12
- _id: ObjectId;
13
- id?: string;
14
- name: string;
15
- email?: string;
16
- };
17
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ListPlanningParticipant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListPlanningParticipant.js","sourceRoot":"","sources":["../../../src/interfaces/ListPlanningParticipant.ts"],"names":[],"mappings":""}
@@ -1,62 +0,0 @@
1
- import { ObjectId } from 'mongodb';
2
- import { Conversation } from '@lilaquadrat/interfaces';
3
- export declare const RIGHTS: readonly ["read", "write", "edit", "delete", "files", "rename", "participants", "block"];
4
- export type Right = typeof RIGHTS[number];
5
- /**
6
- * Enriched participant shape returned to clients. Conversations are *stored* with
7
- * `participants: string[]` (user ids); read/emit paths enrich each id to this object
8
- * via the `me` collection. Unresolvable ids (e.g. external IdP subs with no `me`
9
- * record) degrade to just `{ id }` so no participant is ever dropped.
10
- */
11
- export interface ParticipantUser {
12
- id: string;
13
- prename?: string;
14
- lastname?: string;
15
- /** only included by the staff-authorised support conversation list */
16
- email?: string;
17
- /** presence: last proof of life, ISO string. Absent for a user who never connected. */
18
- lastSeen?: string;
19
- /** presence: derived from the stored flag AND lastSeen freshness, see presence.service */
20
- online?: boolean;
21
- /**
22
- * support conversations only, and only on the paths that carry the roles: the agent-side list
23
- * pipeline (support-conversations.service) and the `conversation:new` frame. It is what lets a
24
- * client name the counterpart itself — the customer is the participant whose role is not
25
- * 'agent'. `null` says "not a member of the support team", which on a pre-f2fdc27 legacy row is
26
- * every participant, so none of them is distinguishable — see supportCustomer.ts. Absent means
27
- * the path this object came from does not carry roles at all.
28
- */
29
- role?: ParticipantRole | null;
30
- }
31
- /** A Conversation as sent to clients: participants enriched from ids to objects. */
32
- export type ConversationResponse = Omit<Conversation, 'participants'> & {
33
- participants?: ParticipantUser[];
34
- };
35
- export declare const PARTICIPANT_STATES: readonly ["active", "left", "removed", "blocked", "deleted"];
36
- export type ParticipantState = typeof PARTICIPANT_STATES[number];
37
- export declare const PARTICIPANT_ROLES: readonly ["agent"];
38
- export type ParticipantRole = typeof PARTICIPANT_ROLES[number];
39
- interface Participant {
40
- _id?: ObjectId;
41
- conversation: ObjectId;
42
- user: string;
43
- state: ParticipantState;
44
- rights: Right[];
45
- lastReadId?: number;
46
- latestMessageId?: number;
47
- /**
48
- * the participant silenced this conversation for themselves. A pure notification
49
- * preference — delivery is untouched, muted members still receive every frame, the
50
- * client just stops making noise about them. Private to the owner of the doc: it is
51
- * never broadcast to the other participants.
52
- */
53
- muted?: boolean;
54
- /**
55
- * only set on support conversations, and only for the support team. It is what separates
56
- * the team from the customer on every read path, so the conversation's own bookkeeping
57
- * (system messages) can stay internal — see messages.service list().
58
- */
59
- role?: ParticipantRole;
60
- joinedAt?: string;
61
- }
62
- export default Participant;
@@ -1,4 +0,0 @@
1
- export const RIGHTS = ['read', 'write', 'edit', 'delete', 'files', 'rename', 'participants', 'block'];
2
- export const PARTICIPANT_STATES = ['active', 'left', 'removed', 'blocked', 'deleted'];
3
- export const PARTICIPANT_ROLES = ['agent'];
4
- //# sourceMappingURL=Participant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Participant.js","sourceRoot":"","sources":["../../../src/interfaces/Participant.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAU,CAAC;AAiC/G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAG/F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAU,CAAC"}
@@ -1,14 +0,0 @@
1
- import { List, ListCategory, PaymentProvider, PaymentProviderProduct } from '@lilaquadrat/interfaces';
2
- export interface PaymentProviderBase<T extends PaymentProvider = PaymentProvider> {
3
- provider: T;
4
- /**
5
- * creates the sellable product for a category at the provider.
6
- * returns the provider's product id, which gets stored as the category's externalId
7
- */
8
- createProduct(category: ListCategory, list: Pick<List, 'name' | 'location' | 'start'>): Promise<string>;
9
- /**
10
- * loads the product behind an externalId from the provider.
11
- * throws PRODUCT_NOT_FOUND if the provider doesn't know the id
12
- */
13
- getProduct(externalId: string): Promise<PaymentProviderProduct>;
14
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PaymentProviderBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentProviderBase.js","sourceRoot":"","sources":["../../../src/interfaces/PaymentProviderBase.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- import type { ObjectId, WithId } from 'mongodb';
2
- import type { Shift, ShiftPlan, ShiftPlanningSettings, Structure } from '@lilaquadrat/interfaces';
3
- import type { CoverageTarget } from '../helpers/shiftPlanCoverage.js';
4
- /**
5
- * Everything a plan coverage run needs after the shared reads. Candidate pools are already ranked
6
- * and the ids are the people that must be resolved for reporting, so callers only add the schedule.
7
- */
8
- export interface PlanCoveragePreparation {
9
- plan: WithId<ShiftPlan>;
10
- shifts: WithId<Shift>[];
11
- targets: CoverageTarget[];
12
- participantIds: ObjectId[];
13
- customerIds: ObjectId[];
14
- settings: ShiftPlanningSettings | null;
15
- listStructures: WithId<Structure>[];
16
- customerStructures: WithId<Structure>[];
17
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PlanCoveragePreparation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlanCoveragePreparation.js","sourceRoot":"","sources":["../../../src/interfaces/PlanCoveragePreparation.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import type { ShiftScopeCoverage } from '@lilaquadrat/interfaces';
2
- import type { ListPlanningParticipant } from './ListPlanningParticipant.js';
3
- /**
4
- * Candidate page for a shift or work area, or coverage for a day or plan. `data` is empty when
5
- * `coverage` is present.
6
- */
7
- export interface PlanningParticipantsResult {
8
- all: number;
9
- count: number;
10
- data: ListPlanningParticipant[];
11
- coverage?: ShiftScopeCoverage;
12
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PlanningParticipantsResult.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlanningParticipantsResult.js","sourceRoot":"","sources":["../../../src/interfaces/PlanningParticipantsResult.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import type { ObjectId } from 'mongodb';
2
- export interface ShiftAutofillResult {
3
- shift: ObjectId;
4
- /** Assignments anchor list entries rather than customer records. */
5
- users: ObjectId[];
6
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ShiftAutofillResult.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShiftAutofillResult.js","sourceRoot":"","sources":["../../../src/interfaces/ShiftAutofillResult.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import type { ObjectId, WithId } from 'mongodb';
2
- import type { Shift } from '@lilaquadrat/interfaces';
3
- import type { PlanCoveragePreparation } from './PlanCoveragePreparation.js';
4
- export interface ShiftReportContextOptions {
5
- replacement?: WithId<Shift>;
6
- plan?: ObjectId;
7
- schedules?: WithId<Shift>[];
8
- preparation?: PlanCoveragePreparation;
9
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ShiftReportContextOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShiftReportContextOptions.js","sourceRoot":"","sources":["../../../src/interfaces/ShiftReportContextOptions.ts"],"names":[],"mappings":""}