@lilaquadrat/studio 12.0.0 → 12.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 (140) hide show
  1. package/lib/models.d.ts +8 -1
  2. package/lib/models.js +8 -1
  3. package/lib/models.js.map +1 -1
  4. package/lib/services.d.ts +8 -1
  5. package/lib/services.js +8 -1
  6. package/lib/services.js.map +1 -1
  7. package/lib/src/Immutable.class.js +10 -4
  8. package/lib/src/Immutable.class.js.map +1 -1
  9. package/lib/src/aggegations/structures.aggregation.d.ts +6 -8
  10. package/lib/src/aggegations/structures.aggregation.js +3 -2
  11. package/lib/src/aggegations/structures.aggregation.js.map +1 -1
  12. package/lib/src/classes/paymentProviders/PaymentProviderFactory.class.d.ts +4 -0
  13. package/lib/src/classes/paymentProviders/PaymentProviderFactory.class.js +8 -0
  14. package/lib/src/classes/paymentProviders/PaymentProviderFactory.class.js.map +1 -0
  15. package/lib/src/classes/paymentProviders/StripePaymentProvider.class.d.ts +9 -0
  16. package/lib/src/classes/paymentProviders/StripePaymentProvider.class.js +49 -0
  17. package/lib/src/classes/paymentProviders/StripePaymentProvider.class.js.map +1 -0
  18. package/lib/src/classes/shiftPlanningModel.class.d.ts +6 -0
  19. package/lib/src/classes/shiftPlanningModel.class.js +26 -0
  20. package/lib/src/classes/shiftPlanningModel.class.js.map +1 -0
  21. package/lib/src/helpers/buildProductName.d.ts +7 -0
  22. package/lib/src/helpers/buildProductName.js +20 -0
  23. package/lib/src/helpers/buildProductName.js.map +1 -0
  24. package/lib/src/helpers/shiftPlanningReports.d.ts +7 -0
  25. package/lib/src/helpers/shiftPlanningReports.js +135 -0
  26. package/lib/src/helpers/shiftPlanningReports.js.map +1 -0
  27. package/lib/src/helpers/shiftPlanningSchemas.d.ts +143 -0
  28. package/lib/src/helpers/shiftPlanningSchemas.js +87 -0
  29. package/lib/src/helpers/shiftPlanningSchemas.js.map +1 -0
  30. package/lib/src/helpers/shiftPlanningTime.d.ts +24 -0
  31. package/lib/src/helpers/shiftPlanningTime.js +191 -0
  32. package/lib/src/helpers/shiftPlanningTime.js.map +1 -0
  33. package/lib/src/helpers/shiftPlanningValidation.d.ts +26 -0
  34. package/lib/src/helpers/shiftPlanningValidation.js +53 -0
  35. package/lib/src/helpers/shiftPlanningValidation.js.map +1 -0
  36. package/lib/src/helpers/structureMatch.d.ts +15 -0
  37. package/lib/src/helpers/structureMatch.js +70 -0
  38. package/lib/src/helpers/structureMatch.js.map +1 -0
  39. package/lib/src/interfaces/PaymentProviderBase.d.ts +14 -0
  40. package/lib/src/interfaces/PaymentProviderBase.js +2 -0
  41. package/lib/src/interfaces/PaymentProviderBase.js.map +1 -0
  42. package/lib/src/models/customers.model.js +10 -0
  43. package/lib/src/models/customers.model.js.map +1 -1
  44. package/lib/src/models/employeeAbsence.model.d.ts +4 -0
  45. package/lib/src/models/employeeAbsence.model.js +11 -0
  46. package/lib/src/models/employeeAbsence.model.js.map +1 -0
  47. package/lib/src/models/historySeen.model.d.ts +4 -0
  48. package/lib/src/models/historySeen.model.js +30 -0
  49. package/lib/src/models/historySeen.model.js.map +1 -0
  50. package/lib/src/models/listsParticipants.model.js +11 -0
  51. package/lib/src/models/listsParticipants.model.js.map +1 -1
  52. package/lib/src/models/permissions.model.js +28 -0
  53. package/lib/src/models/permissions.model.js.map +1 -1
  54. package/lib/src/models/shift.model.d.ts +4 -0
  55. package/lib/src/models/shift.model.js +17 -0
  56. package/lib/src/models/shift.model.js.map +1 -0
  57. package/lib/src/models/shiftPlan.model.d.ts +4 -0
  58. package/lib/src/models/shiftPlan.model.js +14 -0
  59. package/lib/src/models/shiftPlan.model.js.map +1 -0
  60. package/lib/src/models/shiftPlanDays.model.d.ts +4 -0
  61. package/lib/src/models/shiftPlanDays.model.js +15 -0
  62. package/lib/src/models/shiftPlanDays.model.js.map +1 -0
  63. package/lib/src/models/shiftPlanningSettings.model.d.ts +4 -0
  64. package/lib/src/models/shiftPlanningSettings.model.js +10 -0
  65. package/lib/src/models/shiftPlanningSettings.model.js.map +1 -0
  66. package/lib/src/models/workAreas.model.d.ts +4 -0
  67. package/lib/src/models/workAreas.model.js +12 -0
  68. package/lib/src/models/workAreas.model.js.map +1 -0
  69. package/lib/src/services/customers.service.d.ts +11 -0
  70. package/lib/src/services/customers.service.js +27 -0
  71. package/lib/src/services/customers.service.js.map +1 -1
  72. package/lib/src/services/employeeAbsences.service.d.ts +18 -0
  73. package/lib/src/services/employeeAbsences.service.js +57 -0
  74. package/lib/src/services/employeeAbsences.service.js.map +1 -0
  75. package/lib/src/services/history.service.d.ts +22 -0
  76. package/lib/src/services/history.service.js +145 -115
  77. package/lib/src/services/history.service.js.map +1 -1
  78. package/lib/src/services/historySeen.service.d.ts +32 -0
  79. package/lib/src/services/historySeen.service.js +66 -0
  80. package/lib/src/services/historySeen.service.js.map +1 -0
  81. package/lib/src/services/listParticipants.service.d.ts +143 -12
  82. package/lib/src/services/listParticipants.service.js +145 -6
  83. package/lib/src/services/listParticipants.service.js.map +1 -1
  84. package/lib/src/services/lists.service.d.ts +9 -0
  85. package/lib/src/services/lists.service.js +28 -0
  86. package/lib/src/services/lists.service.js.map +1 -1
  87. package/lib/src/services/paymentProviders.service.d.ts +5 -0
  88. package/lib/src/services/paymentProviders.service.js +10 -0
  89. package/lib/src/services/paymentProviders.service.js.map +1 -1
  90. package/lib/src/services/shiftPlanDays.service.d.ts +22 -0
  91. package/lib/src/services/shiftPlanDays.service.js +80 -0
  92. package/lib/src/services/shiftPlanDays.service.js.map +1 -0
  93. package/lib/src/services/shiftPlanningSettings.service.d.ts +11 -0
  94. package/lib/src/services/shiftPlanningSettings.service.js +27 -0
  95. package/lib/src/services/shiftPlanningSettings.service.js.map +1 -0
  96. package/lib/src/services/shiftPlans.service.d.ts +24 -0
  97. package/lib/src/services/shiftPlans.service.js +139 -0
  98. package/lib/src/services/shiftPlans.service.js.map +1 -0
  99. package/lib/src/services/shifts.service.d.ts +29 -0
  100. package/lib/src/services/shifts.service.js +260 -0
  101. package/lib/src/services/shifts.service.js.map +1 -0
  102. package/lib/src/services/structures.service.d.ts +2 -0
  103. package/lib/src/services/structures.service.js +7 -0
  104. package/lib/src/services/structures.service.js.map +1 -1
  105. package/lib/src/services/workAreas.service.d.ts +18 -0
  106. package/lib/src/services/workAreas.service.js +67 -0
  107. package/lib/src/services/workAreas.service.js.map +1 -0
  108. package/lib/tests/buildProductName.spec.d.ts +1 -0
  109. package/lib/tests/buildProductName.spec.js +27 -0
  110. package/lib/tests/buildProductName.spec.js.map +1 -0
  111. package/lib/tests/customersServiceStructures.spec.d.ts +1 -0
  112. package/lib/tests/customersServiceStructures.spec.js +146 -0
  113. package/lib/tests/customersServiceStructures.spec.js.map +1 -0
  114. package/lib/tests/historySeenService.spec.d.ts +1 -0
  115. package/lib/tests/historySeenService.spec.js +159 -0
  116. package/lib/tests/historySeenService.spec.js.map +1 -0
  117. package/lib/tests/listParticipantsHistory.spec.js +49 -3
  118. package/lib/tests/listParticipantsHistory.spec.js.map +1 -1
  119. package/lib/tests/listParticipantsPlanning.spec.d.ts +1 -0
  120. package/lib/tests/listParticipantsPlanning.spec.js +83 -0
  121. package/lib/tests/listParticipantsPlanning.spec.js.map +1 -0
  122. package/lib/tests/listParticipantsServiceStructures.spec.d.ts +1 -0
  123. package/lib/tests/listParticipantsServiceStructures.spec.js +176 -0
  124. package/lib/tests/listParticipantsServiceStructures.spec.js.map +1 -0
  125. package/lib/tests/listsServiceCreateExternalProducts.spec.d.ts +1 -0
  126. package/lib/tests/listsServiceCreateExternalProducts.spec.js +73 -0
  127. package/lib/tests/listsServiceCreateExternalProducts.spec.js.map +1 -0
  128. package/lib/tests/paymentProviders.spec.d.ts +1 -0
  129. package/lib/tests/paymentProviders.spec.js +119 -0
  130. package/lib/tests/paymentProviders.spec.js.map +1 -0
  131. package/lib/tests/paymentProvidersServiceGetProduct.spec.d.ts +1 -0
  132. package/lib/tests/paymentProvidersServiceGetProduct.spec.js +33 -0
  133. package/lib/tests/paymentProvidersServiceGetProduct.spec.js.map +1 -0
  134. package/lib/tests/shiftPlanning.spec.d.ts +1 -0
  135. package/lib/tests/shiftPlanning.spec.js +835 -0
  136. package/lib/tests/shiftPlanning.spec.js.map +1 -0
  137. package/lib/tests/structureMatch.spec.d.ts +1 -0
  138. package/lib/tests/structureMatch.spec.js +64 -0
  139. package/lib/tests/structureMatch.spec.js.map +1 -0
  140. package/package.json +2 -2
@@ -3,11 +3,20 @@ import Immutable from '../Immutable.class.js';
3
3
  import ListsModel from '../models/lists.model.js';
4
4
  import updateMappedId from '../helpers/updateMappedId.js';
5
5
  import safeObjectId from '../helpers/safeObjectId.js';
6
+ import paymentProvidersService from './paymentProviders.service.js';
7
+ import PaymentProviderFactory from '../classes/paymentProviders/PaymentProviderFactory.class.js';
6
8
  export class ListsService extends Immutable {
7
9
  constructor() {
8
10
  super(...arguments);
9
11
  this.model = ListsModel;
10
12
  }
13
+ /** Planning uses the employee pool even when registration is closed, without participant aggregations. */
14
+ singleForPlanning(list, options) {
15
+ return this.model.db.findOne({ _id: list, company: options.company, project: options.project });
16
+ }
17
+ listsForPlanning(lists, options) {
18
+ return this.model.db.find({ _id: { $in: lists }, company: options.company, project: options.project }).toArray();
19
+ }
11
20
  single(internalId, state, options) {
12
21
  const match = { _id: internalId, company: options.company, project: options.project };
13
22
  if (state) {
@@ -418,6 +427,25 @@ export class ListsService extends Immutable {
418
427
  });
419
428
  }
420
429
  }
430
+ /**
431
+ * creates the product at the requested payment provider for every category flagged with createExternalProduct.
432
+ * the flag is always removed, so it never reaches validation or the database.
433
+ * categories that already have an externalId are left untouched.
434
+ */
435
+ async createExternalProducts(data, options) {
436
+ if (!data.categories)
437
+ return;
438
+ await Promise.all(data.categories.map(async (category) => {
439
+ const providerType = category.createExternalProduct;
440
+ delete category.createExternalProduct;
441
+ if (!providerType || category.externalId)
442
+ return;
443
+ const provider = await paymentProvidersService.byType(providerType, options.company, options.project);
444
+ if (!provider)
445
+ throw new Error('NO_PAYMENT_PROVIDER');
446
+ category.externalId = await PaymentProviderFactory(provider).createProduct(category, data);
447
+ }));
448
+ }
421
449
  getValidationType(action, type) {
422
450
  if (!['create', 'change'].includes(action))
423
451
  throw new Error('UNSUPPORTED_ACTION');
@@ -1 +1 @@
1
- {"version":3,"file":"lists.service.js","sourceRoot":"","sources":["../../../src/services/lists.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lists.service.js","sourceRoot":"","sources":["../../../src/services/lists.service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@ export declare class PaymentProvidersService extends Immutable<PaymentProvider>
7
7
  byInternalId(internalId: ObjectId, company: string, project: string): Promise<import("mongodb").WithId<PaymentProvider> | null>;
8
8
  byType(type: 'shopify', company: string, project: string): Promise<PaymentProviderShopify | null>;
9
9
  byType(type: 'stripe', company: string, project: string): Promise<PaymentProviderStripe | null>;
10
+ byType(type: PaymentProvider['type'], company: string, project: string): Promise<PaymentProvider | null>;
11
+ /**
12
+ * loads the product behind an externalId from the active provider of that type
13
+ */
14
+ getProduct(type: PaymentProvider['type'], externalId: string, company: string, project: string): Promise<import("@lilaquadrat/interfaces").PaymentProviderProduct>;
10
15
  export(options: Options): Promise<import("mongodb").WithId<PaymentProvider>[]>;
11
16
  }
12
17
  declare const _default: PaymentProvidersService;
@@ -1,5 +1,6 @@
1
1
  import Immutable from '../Immutable.class.js';
2
2
  import PaymentProviderModel from '../models/payment-provider.model.js';
3
+ import PaymentProviderFactory from '../classes/paymentProviders/PaymentProviderFactory.class.js';
3
4
  export class PaymentProvidersService extends Immutable {
4
5
  constructor() {
5
6
  super(...arguments);
@@ -18,6 +19,15 @@ export class PaymentProvidersService extends Immutable {
18
19
  byType(type, company, project) {
19
20
  return this.model.db.findOne({ type, company, project, active: true });
20
21
  }
22
+ /**
23
+ * loads the product behind an externalId from the active provider of that type
24
+ */
25
+ async getProduct(type, externalId, company, project) {
26
+ const provider = await this.byType(type, company, project);
27
+ if (!provider)
28
+ throw new Error('NO_PAYMENT_PROVIDER');
29
+ return PaymentProviderFactory(provider).getProduct(externalId);
30
+ }
21
31
  export(options) {
22
32
  return this.model.db.find({ company: options.company, project: options.project }).toArray();
23
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paymentProviders.service.js","sourceRoot":"","sources":["../../../src/services/paymentProviders.service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AAGvE,MAAM,OAAO,uBAAwB,SAAQ,SAA0B;IAAvE;;QAEE,UAAK,GAAG,oBAAoB,CAAC;IA+B/B,CAAC;IA7BC,iBAAiB,CAAC,MAA2B,EAAE,IAA6B;QAE1E,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEjF,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,CAAC;IAED,YAAY,CAAC,UAAoB,EAAE,OAAe,EAAE,OAAe;QAEjE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtE,CAAC;IAID,MAAM,CAAC,IAA0B,EAAE,OAAe,EAAE,OAAe;QAEjE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzE,CAAC;IAED,MAAM,CAAC,OAAgB;QAErB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAE9F,CAAC;CAEF;AAED,eAAe,IAAI,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"paymentProviders.service.js","sourceRoot":"","sources":["../../../src/services/paymentProviders.service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AAEvE,OAAO,sBAAsB,MAAM,6DAA6D,CAAC;AAEjG,MAAM,OAAO,uBAAwB,SAAQ,SAA0B;IAAvE;;QAEE,UAAK,GAAG,oBAAoB,CAAC;IA6C/B,CAAC;IA3CC,iBAAiB,CAAC,MAA2B,EAAE,IAA6B;QAE1E,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEjF,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,CAAC;IAED,YAAY,CAAC,UAAoB,EAAE,OAAe,EAAE,OAAe;QAEjE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtE,CAAC;IAKD,MAAM,CAAC,IAA6B,EAAE,OAAe,EAAE,OAAe;QAEpE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAA6B,EAAE,UAAkB,EAAE,OAAe,EAAE,OAAe;QAElG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEtD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAEjE,CAAC;IAED,MAAM,CAAC,OAAgB;QAErB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAE9F,CAAC;CAEF;AAED,eAAe,IAAI,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { ObjectId, WithId } from 'mongodb';
2
+ import type { ShiftPlanDay, ShiftPlanDayInput, ShiftPlanningPage, ShiftPlanningProjectOptions } from '@lilaquadrat/interfaces';
3
+ import Immutable from '../Immutable.class.js';
4
+ /** A day is the scheduling container under a plan; its work-area links become the columns shifts are placed in. */
5
+ export declare class ShiftPlanDaysService extends Immutable<ShiftPlanDay> {
6
+ model: import("../classes/shiftPlanningModel.class.js").default<ShiftPlanDay>;
7
+ private configuration;
8
+ createDay(plan: ObjectId, input: ShiftPlanDayInput, options: ShiftPlanningProjectOptions): Promise<ShiftPlanDay>;
9
+ singleDay(plan: ObjectId, day: ObjectId, options: ShiftPlanningProjectOptions): Promise<WithId<ShiftPlanDay> | null>;
10
+ dayForScheduling(plan: ObjectId, day: ObjectId, options: ShiftPlanningProjectOptions): Promise<WithId<ShiftPlanDay>>;
11
+ dayForScheduling(plan: ObjectId, day: ObjectId, options: ShiftPlanningProjectOptions, required: false): Promise<WithId<ShiftPlanDay> | null>;
12
+ changeDay(plan: ObjectId, day: ObjectId, input: ShiftPlanDayInput, options: ShiftPlanningProjectOptions): Promise<ShiftPlanDay>;
13
+ removeDay(plan: ObjectId, day: ObjectId, options: ShiftPlanningProjectOptions): Promise<void>;
14
+ listDays(plan: ObjectId, filters: {
15
+ site?: number;
16
+ }, options: ShiftPlanningProjectOptions): Promise<ShiftPlanningPage<ShiftPlanDay>>;
17
+ daysForPlans(plans: ObjectId[], options: ShiftPlanningProjectOptions): Promise<WithId<ShiftPlanDay>[]>;
18
+ plansInRange(from: string | undefined, to: string | undefined, options: ShiftPlanningProjectOptions): Promise<ObjectId[]>;
19
+ hasWorkAreaReference(area: ObjectId, options: ShiftPlanningProjectOptions): Promise<boolean>;
20
+ }
21
+ declare const _default: ShiftPlanDaysService;
22
+ export default _default;
@@ -0,0 +1,80 @@
1
+ import { ObjectId } from 'mongodb';
2
+ import Immutable from '../Immutable.class.js';
3
+ import ImmutableError from '../classes/errors/Immutable.error.js';
4
+ import DayModel from '../models/shiftPlanDays.model.js';
5
+ import ShiftPlansService from './shiftPlans.service.js';
6
+ import ShiftsService from './shifts.service.js';
7
+ import WorkAreasService from './workAreas.service.js';
8
+ import { assertUniquePlanningIds, planningPage, planningPagination } from '../helpers/shiftPlanningValidation.js';
9
+ import { planningValidation } from '../helpers/shiftPlanningTime.js';
10
+ /** A day is the scheduling container under a plan; its work-area links become the columns shifts are placed in. */
11
+ export class ShiftPlanDaysService extends Immutable {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.model = DayModel;
15
+ }
16
+ async configuration(input, options) {
17
+ const links = input.areas ?? [];
18
+ assertUniquePlanningIds(links.map((link) => link.area.toHexString()), '/areas');
19
+ const areas = await WorkAreasService.areasForPlanning(links.map((link) => link.area), options);
20
+ if (areas.length !== new Set(links.map((link) => link.area.toHexString())).size)
21
+ planningValidation('/areas', 'work areas must exist in this project');
22
+ return { date: input.date, ...(input.name ? { name: input.name } : {}), ...(links.length ? { areas: links } : {}) };
23
+ }
24
+ async createDay(plan, input, options) {
25
+ await ShiftPlansService.planForScheduling(plan, options);
26
+ const existing = await this.model.db.findOne({ company: options.company, project: options.project, plan, date: input.date });
27
+ if (existing)
28
+ planningValidation('/date', 'must be unique within the plan');
29
+ const created = await this.create({ _id: new ObjectId(), company: options.company, project: options.project, plan, ...await this.configuration(input, options) }, options.user, options.app);
30
+ return (await this.singleDay(plan, created._id, options));
31
+ }
32
+ async singleDay(plan, day, options) {
33
+ return this.model.db.findOne({ _id: day, company: options.company, project: options.project, plan });
34
+ }
35
+ async dayForScheduling(plan, day, options, required = true) {
36
+ const document = await this.singleDay(plan, day, options);
37
+ if (!document && required)
38
+ throw new ImmutableError('SHIFT_PLAN_DAY_NOT_FOUND');
39
+ return document;
40
+ }
41
+ async changeDay(plan, day, input, options) {
42
+ const previous = await this.dayForScheduling(plan, day, options);
43
+ const duplicate = await this.model.db.findOne({ _id: { $ne: day }, company: options.company, project: options.project, plan, date: input.date });
44
+ if (duplicate)
45
+ planningValidation('/date', 'must be unique within the plan');
46
+ await ShiftPlansService.planForScheduling(plan, options);
47
+ const configuration = await this.configuration(input, options);
48
+ await ShiftsService.assertDayReferences(previous, configuration, options);
49
+ await this.immutable({ _id: day, company: options.company, project: options.project, plan }, configuration, options.user, 'change', options.app);
50
+ return (await this.singleDay(plan, day, options));
51
+ }
52
+ async removeDay(plan, day, options) {
53
+ await this.dayForScheduling(plan, day, options);
54
+ if (await ShiftsService.hasDayShifts(day, options))
55
+ throw new ImmutableError('SHIFT_PLAN_DAY_IN_USE');
56
+ await this.delete(day, options.user, options.app);
57
+ }
58
+ async listDays(plan, filters, options) {
59
+ await ShiftPlansService.planForScheduling(plan, options);
60
+ const query = { company: options.company, project: options.project, plan };
61
+ const { site, limit, skip } = planningPagination(filters);
62
+ const all = await this.model.db.countDocuments(query);
63
+ const days = await this.model.db.find(query).sort({ date: 1, _id: 1 }).skip(skip).limit(limit).toArray();
64
+ return planningPage(days, all, site, limit);
65
+ }
66
+ daysForPlans(plans, options) {
67
+ if (!plans.length)
68
+ return Promise.resolve([]);
69
+ return this.model.db.find({ company: options.company, project: options.project, plan: { $in: plans } }).sort({ date: 1, _id: 1 }).toArray();
70
+ }
71
+ plansInRange(from, to, options) {
72
+ const date = { ...(from ? { $gte: from } : {}), ...(to ? { $lt: to } : {}) };
73
+ return this.model.db.distinct('plan', { company: options.company, project: options.project, date });
74
+ }
75
+ hasWorkAreaReference(area, options) {
76
+ return this.model.db.countDocuments({ company: options.company, project: options.project, 'areas.area': area }).then((count) => count > 0);
77
+ }
78
+ }
79
+ export default new ShiftPlanDaysService();
80
+ //# sourceMappingURL=shiftPlanDays.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shiftPlanDays.service.js","sourceRoot":"","sources":["../../../src/services/shiftPlanDays.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ShiftPlanningSettings, ShiftPlanningSettingsInput, ShiftPlanningProjectOptions } from '@lilaquadrat/interfaces';
2
+ import Immutable from '../Immutable.class.js';
3
+ /** Company defaults remain separate from plan overrides so changing a default does not erase explicit choices. */
4
+ export declare class ShiftPlanningSettingsService extends Immutable<ShiftPlanningSettings> {
5
+ model: import("../classes/shiftPlanningModel.class.js").default<ShiftPlanningSettings>;
6
+ singleSettings(options: ShiftPlanningProjectOptions): Promise<ShiftPlanningSettings | null>;
7
+ /** Existing schedules are retained when stricter defaults introduce attention items. */
8
+ changeSettings(input: ShiftPlanningSettingsInput, options: ShiftPlanningProjectOptions): Promise<ShiftPlanningSettings>;
9
+ }
10
+ declare const _default: ShiftPlanningSettingsService;
11
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import Immutable from '../Immutable.class.js';
2
+ import SettingsModel from '../models/shiftPlanningSettings.model.js';
3
+ import { validatePolicy } from '../helpers/shiftPlanningTime.js';
4
+ /** Company defaults remain separate from plan overrides so changing a default does not erase explicit choices. */
5
+ export class ShiftPlanningSettingsService extends Immutable {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.model = SettingsModel;
9
+ }
10
+ async singleSettings(options) {
11
+ return this.model.db.findOne({ company: options.company, project: options.project });
12
+ }
13
+ /** Existing schedules are retained when stricter defaults introduce attention items. */
14
+ async changeSettings(input, options) {
15
+ validatePolicy(input?.settings);
16
+ const previous = await this.singleSettings(options);
17
+ if (previous) {
18
+ await this.immutable({ _id: previous._id, company: options.company, project: options.project }, input, options.user, 'change', options.app);
19
+ }
20
+ else {
21
+ await this.create({ company: options.company, project: options.project, settings: input.settings }, options.user, options.app);
22
+ }
23
+ return (await this.singleSettings(options));
24
+ }
25
+ }
26
+ export default new ShiftPlanningSettingsService();
27
+ //# sourceMappingURL=shiftPlanningSettings.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shiftPlanningSettings.service.js","sourceRoot":"","sources":["../../../src/services/shiftPlanningSettings.service.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,kHAAkH;AAClH,MAAM,OAAO,4BAA6B,SAAQ,SAAgC;IAAlF;;QACE,UAAK,GAAG,aAAa,CAAC;IAiBxB,CAAC;IAfC,KAAK,CAAC,cAAc,CAAC,OAAoC;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,cAAc,CAAC,KAAiC,EAAE,OAAoC;QAC1F,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9I,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACjI,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAE,CAAC;IAC/C,CAAC;CACF;AAED,eAAe,IAAI,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ObjectId, WithId } from 'mongodb';
2
+ import type { ShiftPlan, ShiftPlanChangeInput, ShiftPlanCreateInput, ShiftPlanFilters, ShiftPlanResponse, ShiftPlanningPage, ShiftPlanningProjectOptions, ShiftPlanningCompanyOptions } from '@lilaquadrat/interfaces';
3
+ import Immutable from '../Immutable.class.js';
4
+ /** A plan is the top-level scheduling unit; its employee list is an optional, reusable reference. Days are separate documents. */
5
+ export declare class ShiftPlansService extends Immutable<ShiftPlan> {
6
+ model: import("../classes/shiftPlanningModel.class.js").default<ShiftPlan>;
7
+ private employeeList;
8
+ /** One binding per work area, each category must belong to the linked employee list. */
9
+ private workAreaCategories;
10
+ private configuration;
11
+ /** Name/date overlap is intentional: departments and successive weeks may reuse the same pool. */
12
+ createPlan(input: ShiftPlanCreateInput, options: ShiftPlanningProjectOptions): Promise<ShiftPlanResponse>;
13
+ singlePlan(plan: ObjectId, options: ShiftPlanningProjectOptions): Promise<ShiftPlanResponse | null>;
14
+ changePlan(plan: ObjectId, input: ShiftPlanChangeInput, options: ShiftPlanningProjectOptions): Promise<ShiftPlanResponse>;
15
+ listPlans(filters: ShiftPlanFilters, options: ShiftPlanningProjectOptions): Promise<ShiftPlanningPage<ShiftPlanResponse>>;
16
+ planForScheduling(plan: ObjectId, options: ShiftPlanningProjectOptions): Promise<WithId<ShiftPlan>>;
17
+ planForScheduling(plan: ObjectId, options: ShiftPlanningProjectOptions, required: false): Promise<WithId<ShiftPlan> | null>;
18
+ plansForProject(options: ShiftPlanningProjectOptions, list?: ObjectId): Promise<WithId<ShiftPlan>[]>;
19
+ /** Labor checks may span projects; callers return only diagnostics, never these other plans' details. */
20
+ plansForCompany(plans: ObjectId[], options: ShiftPlanningCompanyOptions): Promise<WithId<ShiftPlan>[]>;
21
+ private responses;
22
+ }
23
+ declare const _default: ShiftPlansService;
24
+ export default _default;
@@ -0,0 +1,139 @@
1
+ import Immutable from '../Immutable.class.js';
2
+ import ImmutableError from '../classes/errors/Immutable.error.js';
3
+ import PlanModel from '../models/shiftPlan.model.js';
4
+ import ListsService from './lists.service.js';
5
+ import WorkAreasService from './workAreas.service.js';
6
+ import ShiftPlanDaysService from './shiftPlanDays.service.js';
7
+ import ShiftsService from './shifts.service.js';
8
+ import SettingsService from './shiftPlanningSettings.service.js';
9
+ import { effectivePolicy, localFormatter, normalizeDate, planningValidation, validatePolicy } from '../helpers/shiftPlanningTime.js';
10
+ import { assertUniquePlanningIds, planningPage, planningPagination, planningSearch } from '../helpers/shiftPlanningValidation.js';
11
+ /** A plan is the top-level scheduling unit; its employee list is an optional, reusable reference. Days are separate documents. */
12
+ export class ShiftPlansService extends Immutable {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.model = PlanModel;
16
+ }
17
+ async employeeList(list, options) {
18
+ if (!list)
19
+ return undefined;
20
+ const result = await ListsService.singleForPlanning(list, options);
21
+ if (!result)
22
+ throw new ImmutableError('LIST_NOT_FOUND');
23
+ return result;
24
+ }
25
+ /** One binding per work area, each category must belong to the linked employee list. */
26
+ async workAreaCategories(input, list, options) {
27
+ if (input.workAreaCategories === undefined)
28
+ return undefined;
29
+ const entries = input.workAreaCategories.filter((entry) => (entry.categoryIds ?? []).length);
30
+ if (!entries.length)
31
+ return [];
32
+ const areaIds = entries.map((entry) => entry.area);
33
+ assertUniquePlanningIds(areaIds.map((area) => area.toHexString()), '/workAreaCategories');
34
+ const areas = await WorkAreasService.areasForPlanning(areaIds, options);
35
+ if (areas.length !== new Set(areaIds.map((area) => area.toHexString())).size)
36
+ planningValidation('/workAreaCategories', 'work areas must exist in this project');
37
+ const listCategoryIds = new Set((list?.categories ?? []).map((category) => category._id.toHexString()));
38
+ entries.forEach((entry) => {
39
+ const ids = entry.categoryIds ?? [];
40
+ assertUniquePlanningIds(ids.map((category) => category.toHexString()), '/workAreaCategories/categoryIds');
41
+ if (!list)
42
+ planningValidation('/workAreaCategories/categoryIds', 'categories require a linked employee list');
43
+ if (ids.some((category) => !listCategoryIds.has(category.toHexString())))
44
+ planningValidation('/workAreaCategories/categoryIds', 'categories must belong to this employee list');
45
+ });
46
+ return entries;
47
+ }
48
+ async configuration(input, list, options) {
49
+ localFormatter(input.timeZone);
50
+ const settings = await SettingsService.singleSettings(options);
51
+ const overrides = input.settingsOverrides ?? {};
52
+ validatePolicy({ ...settings?.settings, ...overrides });
53
+ const workAreaCategories = await this.workAreaCategories(input, list, options);
54
+ if (input.workHours !== undefined && input.workHours.start >= input.workHours.end)
55
+ planningValidation('/workHours/end', 'end must be after start');
56
+ return {
57
+ name: input.name, timeZone: input.timeZone, settingsOverrides: overrides,
58
+ ...(workAreaCategories !== undefined ? { workAreaCategories } : {}),
59
+ ...(input.defaultParticipantState !== undefined ? { defaultParticipantState: input.defaultParticipantState } : {}),
60
+ ...(input.workHours !== undefined ? { workHours: input.workHours } : {}),
61
+ };
62
+ }
63
+ /** Name/date overlap is intentional: departments and successive weeks may reuse the same pool. */
64
+ async createPlan(input, options) {
65
+ const { list } = input;
66
+ const listDocument = await this.employeeList(list, options);
67
+ const configuration = await this.configuration(input, listDocument, options);
68
+ const created = await this.create({ company: options.company, project: options.project, ...(list ? { list } : {}), ...configuration }, options.user, options.app);
69
+ return (await this.singlePlan(created._id, options));
70
+ }
71
+ async singlePlan(plan, options) {
72
+ const document = await this.planForScheduling(plan, options, false);
73
+ if (!document)
74
+ return null;
75
+ const response = (await this.responses([document], options))[0];
76
+ // The plan detail is edited as a whole, so one request carries its schedule instead of a separate shifts list.
77
+ const shifts = await ShiftsService.listShifts(plan, {}, options);
78
+ return { ...response, shifts: shifts.data };
79
+ }
80
+ async changePlan(plan, input, options) {
81
+ await this.planForScheduling(plan, options);
82
+ const { list } = input;
83
+ const listDocument = await this.employeeList(list, options);
84
+ const configuration = await this.configuration(input, listDocument, options);
85
+ await ShiftsService.assertPlanTimeZone(plan, configuration.timeZone, options);
86
+ await this.immutable({ _id: plan, company: options.company, project: options.project }, { ...configuration, ...(list ? { list } : {}) }, options.user, 'change', options.app);
87
+ return (await this.singlePlan(plan, options));
88
+ }
89
+ async listPlans(filters, options) {
90
+ const from = filters.from ? normalizeDate(filters.from) : undefined;
91
+ const to = filters.to ? normalizeDate(filters.to) : undefined;
92
+ if (from && to && from >= to)
93
+ planningValidation('/to', 'must be after from');
94
+ const query = { company: options.company, project: options.project };
95
+ if (filters.list)
96
+ query.list = filters.list;
97
+ const search = planningSearch(filters.search);
98
+ if (search)
99
+ query.name = { $regex: search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), $options: 'i' };
100
+ if (from || to) {
101
+ const plans = await ShiftPlanDaysService.plansInRange(from, to, options);
102
+ query._id = { $in: plans };
103
+ }
104
+ const { site, limit, skip } = planningPagination(filters);
105
+ const all = await this.model.db.countDocuments(query);
106
+ const plans = await this.model.db.find(query).sort({ name: 1, _id: 1 }).skip(skip).limit(limit).toArray();
107
+ return planningPage(await this.responses(plans, options), all, site, limit);
108
+ }
109
+ async planForScheduling(plan, options, required = true) {
110
+ const document = await this.model.db.findOne({ _id: plan, company: options.company, project: options.project });
111
+ if (!document && required)
112
+ throw new ImmutableError('SHIFT_PLAN_NOT_FOUND');
113
+ return document;
114
+ }
115
+ plansForProject(options, list) {
116
+ return this.model.db.find({ company: options.company, project: options.project, ...(list ? { list } : {}) }).toArray();
117
+ }
118
+ /** Labor checks may span projects; callers return only diagnostics, never these other plans' details. */
119
+ plansForCompany(plans, options) {
120
+ return this.model.db.find({ company: options.company, _id: { $in: plans } }).toArray();
121
+ }
122
+ async responses(plans, options) {
123
+ const settings = await SettingsService.singleSettings(options);
124
+ const days = await ShiftPlanDaysService.daysForPlans(plans.map((plan) => plan._id), options);
125
+ const areas = await WorkAreasService.areasForPlanning(days.flatMap((day) => (day.areas ?? []).map((link) => link.area)), options);
126
+ const listIds = plans.map((plan) => plan.list).filter((list) => !!list);
127
+ const lists = listIds.length ? await ListsService.listsForPlanning(listIds, options) : [];
128
+ return plans.map((plan) => {
129
+ const planDays = days.filter((day) => day.plan.equals(plan._id));
130
+ const list = plan.list ? lists.find((document) => document._id.equals(plan.list)) : undefined;
131
+ return { ...plan, days: planDays, effectiveSettings: effectivePolicy(settings?.settings, plan.settingsOverrides),
132
+ workAreas: areas.filter((area) => planDays.some((day) => (day.areas ?? []).some((link) => link.area.equals(area._id)))),
133
+ ...(list?.categories?.length ? { categories: list.categories } : {}),
134
+ };
135
+ });
136
+ }
137
+ }
138
+ export default new ShiftPlansService();
139
+ //# sourceMappingURL=shiftPlans.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shiftPlans.service.js","sourceRoot":"","sources":["../../../src/services/shiftPlans.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { ObjectId, WithId } from 'mongodb';
2
+ import type { MemberShift, MemberShiftFilters, Shift, ShiftAssignmentsInput, ShiftCreateInput, ShiftInput, ShiftPlanDay, ShiftPlanningFilters, ShiftPlanningPage, ShiftResponse, ShiftPlanningProjectOptions } from '@lilaquadrat/interfaces';
3
+ import Immutable from '../Immutable.class.js';
4
+ /** Scheduling owns employee allocation; work areas and plans only supply reusable identity/configuration. */
5
+ export declare class ShiftsService extends Immutable<Shift> {
6
+ model: import("../classes/shiftPlanningModel.class.js").default<Shift>;
7
+ private normalizedTime;
8
+ private document;
9
+ private resolvedAssignments;
10
+ createShift(plan: ObjectId, input: ShiftCreateInput, options: ShiftPlanningProjectOptions): Promise<ShiftResponse>;
11
+ singleShift(plan: ObjectId, shift: ObjectId, options: ShiftPlanningProjectOptions): Promise<ShiftResponse | null>;
12
+ listShifts(plan: ObjectId, filters: ShiftPlanningFilters, options: ShiftPlanningProjectOptions): Promise<ShiftPlanningPage<ShiftResponse>>;
13
+ /** Absolute break times survive edits; moving a shift outside them must be resolved explicitly by the planner. */
14
+ changeShift(plan: ObjectId, shift: ObjectId, input: ShiftInput, options: ShiftPlanningProjectOptions): Promise<ShiftResponse>;
15
+ removeShift(plan: ObjectId, shift: ObjectId, options: ShiftPlanningProjectOptions): Promise<void>;
16
+ replaceAssignments(plan: ObjectId, shift: ObjectId, input: ShiftAssignmentsInput, options: ShiftPlanningProjectOptions): Promise<ShiftResponse>;
17
+ hasWorkAreaAssignments(area: ObjectId, options: ShiftPlanningProjectOptions): Promise<boolean>;
18
+ /** A plan cannot change its time zone while existing shifts would no longer match their day's local date. */
19
+ assertPlanTimeZone(plan: ObjectId, timeZone: string, options: ShiftPlanningProjectOptions): Promise<void>;
20
+ hasDayShifts(day: ObjectId, options: ShiftPlanningProjectOptions): Promise<boolean>;
21
+ /** A day cannot drop an area or change its date while shifts still reference it. */
22
+ assertDayReferences(previous: WithId<ShiftPlanDay>, configuration: Pick<ShiftPlanDay, 'date' | 'areas'>, options: ShiftPlanningProjectOptions): Promise<void>;
23
+ myShifts(customer: ObjectId, filters: MemberShiftFilters, options: ShiftPlanningProjectOptions): Promise<ShiftPlanningPage<MemberShift>>;
24
+ private reportContext;
25
+ private reports;
26
+ private validateSchedule;
27
+ }
28
+ declare const _default: ShiftsService;
29
+ export default _default;