dabke 0.81.1 → 0.83.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 (231) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +45 -27
  3. package/dist/client.d.ts +20 -2
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +4 -1
  6. package/dist/client.js.map +1 -1
  7. package/dist/client.types.d.ts +9 -0
  8. package/dist/client.types.d.ts.map +1 -1
  9. package/dist/client.types.js +1 -0
  10. package/dist/client.types.js.map +1 -1
  11. package/dist/cpsat/model-builder.d.ts +9 -0
  12. package/dist/cpsat/model-builder.d.ts.map +1 -1
  13. package/dist/cpsat/model-builder.js +36 -34
  14. package/dist/cpsat/model-builder.js.map +1 -1
  15. package/dist/cpsat/response.d.ts +13 -1
  16. package/dist/cpsat/response.d.ts.map +1 -1
  17. package/dist/cpsat/response.js +4 -0
  18. package/dist/cpsat/response.js.map +1 -1
  19. package/dist/cpsat/rules/cost-utils.d.ts +11 -0
  20. package/dist/cpsat/rules/cost-utils.d.ts.map +1 -0
  21. package/dist/cpsat/rules/cost-utils.js +24 -0
  22. package/dist/cpsat/rules/cost-utils.js.map +1 -0
  23. package/dist/cpsat/rules/day-cost-multiplier.d.ts.map +1 -1
  24. package/dist/cpsat/rules/day-cost-multiplier.js +3 -14
  25. package/dist/cpsat/rules/day-cost-multiplier.js.map +1 -1
  26. package/dist/cpsat/rules/day-cost-surcharge.d.ts.map +1 -1
  27. package/dist/cpsat/rules/day-cost-surcharge.js +3 -7
  28. package/dist/cpsat/rules/day-cost-surcharge.js.map +1 -1
  29. package/dist/cpsat/rules/index.d.ts +3 -0
  30. package/dist/cpsat/rules/index.d.ts.map +1 -1
  31. package/dist/cpsat/rules/index.js +3 -0
  32. package/dist/cpsat/rules/index.js.map +1 -1
  33. package/dist/cpsat/rules/max-consecutive-days.d.ts.map +1 -1
  34. package/dist/cpsat/rules/max-consecutive-days.js +16 -2
  35. package/dist/cpsat/rules/max-consecutive-days.js.map +1 -1
  36. package/dist/cpsat/rules/max-days-week.d.ts +44 -0
  37. package/dist/cpsat/rules/max-days-week.d.ts.map +1 -0
  38. package/dist/cpsat/rules/max-days-week.js +95 -0
  39. package/dist/cpsat/rules/max-days-week.js.map +1 -0
  40. package/dist/cpsat/rules/max-hours-day.d.ts.map +1 -1
  41. package/dist/cpsat/rules/max-hours-day.js +15 -2
  42. package/dist/cpsat/rules/max-hours-day.js.map +1 -1
  43. package/dist/cpsat/rules/max-hours-week.d.ts.map +1 -1
  44. package/dist/cpsat/rules/max-hours-week.js +16 -2
  45. package/dist/cpsat/rules/max-hours-week.js.map +1 -1
  46. package/dist/cpsat/rules/max-shifts-day.d.ts.map +1 -1
  47. package/dist/cpsat/rules/max-shifts-day.js +15 -2
  48. package/dist/cpsat/rules/max-shifts-day.js.map +1 -1
  49. package/dist/cpsat/rules/min-consecutive-days.d.ts.map +1 -1
  50. package/dist/cpsat/rules/min-consecutive-days.js +15 -2
  51. package/dist/cpsat/rules/min-consecutive-days.js.map +1 -1
  52. package/dist/cpsat/rules/min-days-week.d.ts +34 -0
  53. package/dist/cpsat/rules/min-days-week.d.ts.map +1 -0
  54. package/dist/cpsat/rules/min-days-week.js +84 -0
  55. package/dist/cpsat/rules/min-days-week.js.map +1 -0
  56. package/dist/cpsat/rules/min-hours-day.d.ts.map +1 -1
  57. package/dist/cpsat/rules/min-hours-day.js +15 -2
  58. package/dist/cpsat/rules/min-hours-day.js.map +1 -1
  59. package/dist/cpsat/rules/min-hours-week.d.ts.map +1 -1
  60. package/dist/cpsat/rules/min-hours-week.js +16 -2
  61. package/dist/cpsat/rules/min-hours-week.js.map +1 -1
  62. package/dist/cpsat/rules/min-rest-between-shifts.d.ts.map +1 -1
  63. package/dist/cpsat/rules/min-rest-between-shifts.js +72 -2
  64. package/dist/cpsat/rules/min-rest-between-shifts.js.map +1 -1
  65. package/dist/cpsat/rules/minimize-cost.d.ts.map +1 -1
  66. package/dist/cpsat/rules/minimize-cost.js +2 -23
  67. package/dist/cpsat/rules/minimize-cost.js.map +1 -1
  68. package/dist/cpsat/rules/must-assign.d.ts +49 -0
  69. package/dist/cpsat/rules/must-assign.d.ts.map +1 -0
  70. package/dist/cpsat/rules/must-assign.js +86 -0
  71. package/dist/cpsat/rules/must-assign.js.map +1 -0
  72. package/dist/cpsat/rules/overtime-daily-multiplier.d.ts.map +1 -1
  73. package/dist/cpsat/rules/overtime-daily-multiplier.js +1 -12
  74. package/dist/cpsat/rules/overtime-daily-multiplier.js.map +1 -1
  75. package/dist/cpsat/rules/overtime-daily-surcharge.d.ts.map +1 -1
  76. package/dist/cpsat/rules/overtime-daily-surcharge.js +1 -5
  77. package/dist/cpsat/rules/overtime-daily-surcharge.js.map +1 -1
  78. package/dist/cpsat/rules/overtime-tiered-multiplier.d.ts +5 -1
  79. package/dist/cpsat/rules/overtime-tiered-multiplier.d.ts.map +1 -1
  80. package/dist/cpsat/rules/overtime-tiered-multiplier.js +1 -12
  81. package/dist/cpsat/rules/overtime-tiered-multiplier.js.map +1 -1
  82. package/dist/cpsat/rules/overtime-weekly-multiplier.d.ts.map +1 -1
  83. package/dist/cpsat/rules/overtime-weekly-multiplier.js +1 -12
  84. package/dist/cpsat/rules/overtime-weekly-multiplier.js.map +1 -1
  85. package/dist/cpsat/rules/overtime-weekly-surcharge.d.ts.map +1 -1
  86. package/dist/cpsat/rules/overtime-weekly-surcharge.js +1 -5
  87. package/dist/cpsat/rules/overtime-weekly-surcharge.js.map +1 -1
  88. package/dist/cpsat/rules/registry.d.ts +28 -2
  89. package/dist/cpsat/rules/registry.d.ts.map +1 -1
  90. package/dist/cpsat/rules/registry.js +4 -1
  91. package/dist/cpsat/rules/registry.js.map +1 -1
  92. package/dist/cpsat/rules/resolver.js +2 -2
  93. package/dist/cpsat/rules/resolver.js.map +1 -1
  94. package/dist/cpsat/rules/rules.types.d.ts +3 -0
  95. package/dist/cpsat/rules/rules.types.d.ts.map +1 -1
  96. package/dist/cpsat/rules/scope.types.d.ts +18 -1
  97. package/dist/cpsat/rules/scope.types.d.ts.map +1 -1
  98. package/dist/cpsat/rules/scope.types.js +59 -16
  99. package/dist/cpsat/rules/scope.types.js.map +1 -1
  100. package/dist/cpsat/rules/time-cost-surcharge.d.ts.map +1 -1
  101. package/dist/cpsat/rules/time-cost-surcharge.js +2 -1
  102. package/dist/cpsat/rules/time-cost-surcharge.js.map +1 -1
  103. package/dist/cpsat/rules/time-off.d.ts.map +1 -1
  104. package/dist/cpsat/rules/time-off.js +6 -3
  105. package/dist/cpsat/rules/time-off.js.map +1 -1
  106. package/dist/cpsat/semantic-time.d.ts +44 -42
  107. package/dist/cpsat/semantic-time.d.ts.map +1 -1
  108. package/dist/cpsat/semantic-time.js +64 -46
  109. package/dist/cpsat/semantic-time.js.map +1 -1
  110. package/dist/cpsat/types.d.ts +37 -27
  111. package/dist/cpsat/types.d.ts.map +1 -1
  112. package/dist/cpsat/utils.d.ts.map +1 -1
  113. package/dist/cpsat/utils.js +7 -12
  114. package/dist/cpsat/utils.js.map +1 -1
  115. package/dist/cpsat/validation-reporter.d.ts +10 -7
  116. package/dist/cpsat/validation-reporter.d.ts.map +1 -1
  117. package/dist/cpsat/validation-reporter.js +44 -72
  118. package/dist/cpsat/validation-reporter.js.map +1 -1
  119. package/dist/cpsat/validation.types.d.ts +54 -44
  120. package/dist/cpsat/validation.types.d.ts.map +1 -1
  121. package/dist/cpsat/validation.types.js +15 -10
  122. package/dist/cpsat/validation.types.js.map +1 -1
  123. package/dist/datetime.utils.d.ts +3 -203
  124. package/dist/datetime.utils.d.ts.map +1 -1
  125. package/dist/datetime.utils.js +1 -288
  126. package/dist/datetime.utils.js.map +1 -1
  127. package/dist/index.d.ts +14 -83
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +11 -83
  130. package/dist/index.js.map +1 -1
  131. package/dist/schedule/cost.d.ts +204 -0
  132. package/dist/schedule/cost.d.ts.map +1 -0
  133. package/dist/schedule/cost.js +187 -0
  134. package/dist/schedule/cost.js.map +1 -0
  135. package/dist/schedule/coverage.d.ts +85 -0
  136. package/dist/schedule/coverage.d.ts.map +1 -0
  137. package/dist/schedule/coverage.js +33 -0
  138. package/dist/schedule/coverage.js.map +1 -0
  139. package/dist/schedule/definition.d.ts +227 -0
  140. package/dist/schedule/definition.d.ts.map +1 -0
  141. package/dist/schedule/definition.js +659 -0
  142. package/dist/schedule/definition.js.map +1 -0
  143. package/dist/schedule/index.d.ts +67 -0
  144. package/dist/schedule/index.d.ts.map +1 -0
  145. package/dist/schedule/index.js +69 -0
  146. package/dist/schedule/index.js.map +1 -0
  147. package/dist/schedule/rules.d.ts +353 -0
  148. package/dist/schedule/rules.d.ts.map +1 -0
  149. package/dist/schedule/rules.js +352 -0
  150. package/dist/schedule/rules.js.map +1 -0
  151. package/dist/schedule/shift-patterns.d.ts +34 -0
  152. package/dist/schedule/shift-patterns.d.ts.map +1 -0
  153. package/dist/schedule/shift-patterns.js +41 -0
  154. package/dist/schedule/shift-patterns.js.map +1 -0
  155. package/dist/schedule/time-periods.d.ts +69 -0
  156. package/dist/schedule/time-periods.d.ts.map +1 -0
  157. package/dist/schedule/time-periods.js +91 -0
  158. package/dist/schedule/time-periods.js.map +1 -0
  159. package/dist/types.d.ts +14 -78
  160. package/dist/types.d.ts.map +1 -1
  161. package/dist/types.js.map +1 -1
  162. package/package.json +4 -9
  163. package/solver/src/solver/app.py +1 -1
  164. package/solver/src/solver/solver.py +7 -4
  165. package/src/client.ts +6 -8
  166. package/src/client.types.ts +9 -0
  167. package/src/cpsat/model-builder.ts +44 -35
  168. package/src/cpsat/response.ts +13 -1
  169. package/src/cpsat/rules/cost-utils.ts +25 -0
  170. package/src/cpsat/rules/day-cost-multiplier.ts +3 -14
  171. package/src/cpsat/rules/day-cost-surcharge.ts +3 -8
  172. package/src/cpsat/rules/index.ts +3 -0
  173. package/src/cpsat/rules/max-consecutive-days.ts +17 -0
  174. package/src/cpsat/rules/max-days-week.ts +143 -0
  175. package/src/cpsat/rules/max-hours-day.ts +21 -1
  176. package/src/cpsat/rules/max-hours-week.ts +22 -1
  177. package/src/cpsat/rules/max-shifts-day.ts +21 -1
  178. package/src/cpsat/rules/min-consecutive-days.ts +16 -1
  179. package/src/cpsat/rules/min-days-week.ts +120 -0
  180. package/src/cpsat/rules/min-hours-day.ts +16 -1
  181. package/src/cpsat/rules/min-hours-week.ts +17 -1
  182. package/src/cpsat/rules/min-rest-between-shifts.ts +92 -2
  183. package/src/cpsat/rules/minimize-cost.ts +2 -29
  184. package/src/cpsat/rules/must-assign.ts +108 -0
  185. package/src/cpsat/rules/overtime-daily-multiplier.ts +1 -12
  186. package/src/cpsat/rules/overtime-daily-surcharge.ts +1 -6
  187. package/src/cpsat/rules/overtime-tiered-multiplier.ts +6 -13
  188. package/src/cpsat/rules/overtime-weekly-multiplier.ts +1 -12
  189. package/src/cpsat/rules/overtime-weekly-surcharge.ts +1 -6
  190. package/src/cpsat/rules/registry.ts +8 -2
  191. package/src/cpsat/rules/resolver.ts +2 -2
  192. package/src/cpsat/rules/rules.types.ts +3 -0
  193. package/src/cpsat/rules/scope.types.ts +73 -20
  194. package/src/cpsat/rules/time-cost-surcharge.ts +2 -1
  195. package/src/cpsat/rules/time-off.ts +6 -2
  196. package/src/cpsat/semantic-time.ts +115 -91
  197. package/src/cpsat/types.ts +37 -27
  198. package/src/cpsat/utils.ts +8 -12
  199. package/src/cpsat/validation-reporter.ts +51 -82
  200. package/src/cpsat/validation.types.ts +72 -47
  201. package/src/datetime.utils.ts +3 -334
  202. package/src/index.ts +35 -107
  203. package/src/schedule/cost.ts +242 -0
  204. package/src/schedule/coverage.ts +135 -0
  205. package/src/schedule/definition.ts +958 -0
  206. package/src/schedule/index.ts +112 -0
  207. package/src/schedule/rules.ts +529 -0
  208. package/src/schedule/shift-patterns.ts +46 -0
  209. package/src/schedule/time-periods.ts +110 -0
  210. package/src/types.ts +14 -88
  211. package/dist/errors.d.ts +0 -12
  212. package/dist/errors.d.ts.map +0 -1
  213. package/dist/errors.js +0 -17
  214. package/dist/errors.js.map +0 -1
  215. package/dist/llms.d.ts +0 -2
  216. package/dist/llms.d.ts.map +0 -1
  217. package/dist/llms.js +0 -3
  218. package/dist/llms.js.map +0 -1
  219. package/dist/schedule.d.ts +0 -724
  220. package/dist/schedule.d.ts.map +0 -1
  221. package/dist/schedule.js +0 -899
  222. package/dist/schedule.js.map +0 -1
  223. package/dist/validation.d.ts +0 -105
  224. package/dist/validation.d.ts.map +0 -1
  225. package/dist/validation.js +0 -130
  226. package/dist/validation.js.map +0 -1
  227. package/llms.txt +0 -925
  228. package/src/errors.ts +0 -17
  229. package/src/llms.ts +0 -3
  230. package/src/schedule.ts +0 -1419
  231. package/src/validation.ts +0 -188
@@ -1 +1 @@
1
- {"version":3,"file":"min-rest-between-shifts.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/min-rest-between-shifts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAS3D,QAAA,MAAM,0BAA0B;;;iOAKmB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,0BAA0B,GACjC,eAAe,CAsFjB"}
1
+ {"version":3,"file":"min-rest-between-shifts.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/min-rest-between-shifts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;AAYlF,QAAA,MAAM,0BAA0B;;;iOAKmB,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,0BAA0B,GACjC,eAAe,CAsKjB"}
@@ -1,6 +1,6 @@
1
1
  import * as z from "zod";
2
- import { priorityToPenalty } from "../utils.js";
3
- import { PrioritySchema, entityScope, parseEntityScope, resolveMembersFromScope, } from "./scope.types.js";
2
+ import { normalizeEndMinutes, priorityToPenalty, timeOfDayToMinutes } from "../utils.js";
3
+ import { PrioritySchema, entityScope, parseEntityScope, resolveMembersFromScope, ruleGroup, } from "./scope.types.js";
4
4
  const MinRestBetweenShiftsSchema = z
5
5
  .object({
6
6
  hours: z.number().min(0),
@@ -21,6 +21,7 @@ export function createMinRestBetweenShiftsRule(config) {
21
21
  const scope = parseEntityScope(parsed);
22
22
  const { hours, priority } = parsed;
23
23
  const minMinutes = hours * 60;
24
+ const group = ruleGroup(`min-rest-between-shifts:${hours}`, `Min ${hours}h rest between shifts`, scope);
24
25
  return {
25
26
  compile(b) {
26
27
  const members = resolveMembersFromScope(scope, b.members);
@@ -84,6 +85,75 @@ export function createMinRestBetweenShiftsRule(config) {
84
85
  }
85
86
  }
86
87
  },
88
+ validate(assignments, reporter, context) {
89
+ if (priority === "MANDATORY")
90
+ return;
91
+ const members = resolveMembersFromScope(scope, context.members);
92
+ if (members.length === 0)
93
+ return;
94
+ const memberIds = new Set(members.map((m) => m.id));
95
+ // Group assignments by member, sort by day then start time
96
+ const byMember = new Map();
97
+ for (const a of assignments) {
98
+ if (!memberIds.has(a.memberId))
99
+ continue;
100
+ const list = byMember.get(a.memberId) ?? [];
101
+ list.push(a);
102
+ byMember.set(a.memberId, list);
103
+ }
104
+ for (const [memberId, memberAssignments] of byMember) {
105
+ const sorted = memberAssignments.toSorted((a, b) => {
106
+ if (a.day !== b.day)
107
+ return a.day < b.day ? -1 : 1;
108
+ return timeOfDayToMinutes(a.startTime) - timeOfDayToMinutes(b.startTime);
109
+ });
110
+ let violated = false;
111
+ for (let i = 0; i < sorted.length - 1; i++) {
112
+ const current = sorted[i];
113
+ const next = sorted[i + 1];
114
+ const currentEndMin = timeOfDayToMinutes(current.endTime);
115
+ const normalizedEnd = normalizeEndMinutes(timeOfDayToMinutes(current.startTime), currentEndMin);
116
+ const nextStartMin = timeOfDayToMinutes(next.startTime);
117
+ // Calculate gap considering day boundaries
118
+ let gap;
119
+ if (current.day === next.day) {
120
+ gap = nextStartMin - normalizedEnd;
121
+ }
122
+ else {
123
+ // Different days: account for the day boundary
124
+ const dayDiff = daysBetween(current.day, next.day);
125
+ gap = dayDiff * 24 * 60 - normalizedEnd + nextStartMin;
126
+ }
127
+ if (gap >= 0 && gap < minMinutes) {
128
+ reporter.reportRuleViolation({
129
+ rule: "min-rest-between-shifts",
130
+ message: `${memberId} has ${Math.round((gap / 60) * 10) / 10}h rest between shifts on ${current.day} and ${next.day}, need ${hours}h`,
131
+ context: { memberIds: [memberId], days: [current.day, next.day] },
132
+ shortfall: minMinutes - gap,
133
+ group,
134
+ });
135
+ violated = true;
136
+ }
137
+ }
138
+ if (!violated && sorted.length > 1) {
139
+ reporter.reportRulePassed({
140
+ rule: "min-rest-between-shifts",
141
+ message: `${memberId} has ${hours}h+ rest between all shifts`,
142
+ context: {
143
+ memberIds: [memberId],
144
+ days: [...new Set(sorted.map((a) => a.day))],
145
+ },
146
+ group,
147
+ });
148
+ }
149
+ }
150
+ },
87
151
  };
88
152
  }
153
+ /** Compute day difference from YYYY-MM-DD strings. */
154
+ function daysBetween(day1, day2) {
155
+ const d1 = new Date(`${day1}T00:00:00Z`);
156
+ const d2 = new Date(`${day2}T00:00:00Z`);
157
+ return Math.round((d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000));
158
+ }
89
159
  //# sourceMappingURL=min-rest-between-shifts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"min-rest-between-shifts.js","sourceRoot":"","sources":["../../../src/cpsat/rules/min-rest-between-shifts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"min-rest-between-shifts.js","sourceRoot":"","sources":["../../../src/cpsat/rules/min-rest-between-shifts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"minimize-cost.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/minimize-cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAmB7E,QAAA,MAAM,kBAAkB,mfAEvB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAyBpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe,CAuLlF"}
1
+ {"version":3,"file":"minimize-cost.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/minimize-cost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAe7E,QAAA,MAAM,kBAAkB,mfAEvB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,eAAe,CAuLlF"}
@@ -1,29 +1,8 @@
1
1
  import { COST_CATEGORY } from "../cost.js";
2
- import { OBJECTIVE_WEIGHTS, timeOfDayToMinutes, normalizeEndMinutes, splitIntoWeeks, } from "../utils.js";
2
+ import { OBJECTIVE_WEIGHTS, splitIntoWeeks } from "../utils.js";
3
3
  import { entityScope, timeScope, parseEntityScope, parseTimeScope, resolveMembersFromScope, resolveActiveDaysFromScope, } from "./scope.types.js";
4
+ import { getHourlyRate, getSalariedPay, patternDurationMinutes } from "./cost-utils.js";
4
5
  const MinimizeCostSchema = entityScope(["members", "roles", "skills"]).and(timeScope(["dateRange", "specificDates", "dayOfWeek", "recurring"]));
5
- /** Returns the hourly rate for a member, or undefined if not hourly. */
6
- function getHourlyRate(member) {
7
- if (!member.pay)
8
- return undefined;
9
- if ("hourlyRate" in member.pay)
10
- return member.pay.hourlyRate;
11
- return undefined;
12
- }
13
- /** Returns salaried pay info, or undefined if not salaried. */
14
- function getSalariedPay(member) {
15
- if (!member.pay)
16
- return undefined;
17
- if ("annual" in member.pay)
18
- return member.pay;
19
- return undefined;
20
- }
21
- /** Computes shift duration in minutes from a pattern. */
22
- function patternDurationMinutes(pattern) {
23
- const start = timeOfDayToMinutes(pattern.startTime);
24
- const end = normalizeEndMinutes(start, timeOfDayToMinutes(pattern.endTime));
25
- return end - start;
26
- }
27
6
  /**
28
7
  * Creates the minimize-cost rule.
29
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"minimize-cost.js","sourceRoot":"","sources":["../../../src/cpsat/rules/minimize-cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minimize-cost.js","sourceRoot":"","sources":["../../../src/cpsat/rules/minimize-cost.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,kBAAkB,GAAG,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CACxE,SAAS,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CACpE,CAAC;AAKF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA0B;IAC/D,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,oBAAoB,GAAc,QAAQ,CAAC;IAE/C,OAAO;QACL,OAAO,CAAC,CAAC;YACP,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC;YAEtC,MAAM,aAAa,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,0BAA0B,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAEtE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAElE,sEAAsE;YACtE,uCAAuC;YACvC,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;wBACtC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;4BAAE,SAAS;wBAC5C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;wBACjD,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACvC,IAAI,OAAO,GAAG,UAAU;4BAAE,UAAU,GAAG,OAAO,CAAC;oBACjD,CAAC;gBACH,CAAC;gBACD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;oBACxC,IAAI,UAAU,GAAG,UAAU;wBAAE,UAAU,GAAG,UAAU,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO;YAE7B,MAAM,mBAAmB,GAAG,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;YAEhE,CAAC,CAAC,WAAW,GAAG;gBACd,mBAAmB;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC;YAEF,uCAAuC;YACvC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;wBACtC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;4BAAE,SAAS;wBAC5C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;4BAC7B,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC;gCAAE,SAAS;4BACrD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;4BACjD,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;4BACvC,MAAM,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,CAAC;4BACxD,CAAC,CAAC,UAAU,CACV,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,EACxC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAC/B,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,kDAAkD;gBAClD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,QAAQ,KAAK,SAAS;oBAAE,SAAS;gBAErC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;gBACxC,MAAM,oBAAoB,GAAG,UAAU,GAAG,mBAAmB,CAAC;gBAE9D,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;gBAEzD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;oBAClD,wDAAwD;oBACxD,MAAM,kBAAkB,GAAa,EAAE,CAAC;oBACxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;4BACtC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;gCAAE,SAAS;4BAC5C,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC;gCAAE,SAAS;4BACrD,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;wBACpE,CAAC;oBACH,CAAC;oBAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBAE9C,mEAAmE;oBACnE,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;oBAEpE,oDAAoD;oBACpD,6DAA6D;oBAC7D,sEAAsE;oBACtE,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;wBAC3C,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBACzC,CAAC;oBAED,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CACF,WAA8B,EAC9B,OAAwC,EACxC,aAA0C;YAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAChF,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC;YAEF,MAAM,OAAO,GAAgC,EAAE,CAAC;YAEhD,mEAAmE;YACnE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAuB,CAAC;YAE1D,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAEtB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAEjD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,QAAQ,EAAE,aAAa,CAAC,IAAI;wBAC5B,MAAM,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE;qBAC/B,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,yCAAyC;gBACzC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,QAAQ,KAAK,SAAS;oBAAE,SAAS;gBAErC,IAAI,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;oBACjB,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;YAED,uEAAuE;YACvE,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,kBAAkB,EAAE,CAAC;gBAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;gBAE/D,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;oBAC7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;oBACxC,iDAAiD;oBACjD,MAAM,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC;4BACX,QAAQ;4BACR,GAAG;4BACH,QAAQ,EAAE,aAAa,CAAC,IAAI;4BAC5B,MAAM,EAAE,MAAM;yBACf,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,49 @@
1
+ import * as z from "zod";
2
+ import type { CompilationRule } from "../model-builder.js";
3
+ declare const MustAssignSchema: z.ZodIntersection<z.ZodObject<{
4
+ weekStartsOn: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"monday">, z.ZodLiteral<"tuesday">, z.ZodLiteral<"wednesday">, z.ZodLiteral<"thursday">, z.ZodLiteral<"friday">, z.ZodLiteral<"saturday">, z.ZodLiteral<"sunday">]>>;
5
+ }, z.core.$strip>, z.ZodType<import("./scope.types.js").EntityScopeType<"members" | "roles" | "skills">, unknown, z.core.$ZodTypeInternals<import("./scope.types.js").EntityScopeType<"members" | "roles" | "skills">, unknown>>>;
6
+ /**
7
+ * Configuration for {@link createMustAssignRule}.
8
+ *
9
+ * - `weekStartsOn` (optional): which day starts the week; defaults to
10
+ * {@link ModelBuilder.weekStartsOn}
11
+ *
12
+ * Entity scoping (at most one): `memberIds`, `roleIds`, `skillIds`
13
+ */
14
+ export type MustAssignConfig = z.infer<typeof MustAssignSchema>;
15
+ /**
16
+ * Guarantees that targeted members appear on the schedule.
17
+ *
18
+ * @remarks
19
+ * Use this for staffing obligations: salaried employees who are paid
20
+ * regardless of whether they work, or contracted staff who must be
21
+ * rostered. The solver ensures each targeted member has at least one
22
+ * assignment per scheduling week.
23
+ *
24
+ * Always compiles as a soft constraint (HIGH priority internally) so the
25
+ * schedule still generates when a member genuinely cannot be placed
26
+ * (e.g., full week of absences, no compatible shift patterns). Violations
27
+ * surface as validation warnings with distinct messaging from
28
+ * `min-days-week`.
29
+ *
30
+ * Unlike {@link createMinDaysWeekRule}, this rule communicates a staffing
31
+ * obligation rather than a scheduling preference. Validation messages
32
+ * reflect this: "Alice was not assigned (staffing obligation)" rather
33
+ * than "Alice worked 0 days, minimum was 1."
34
+ *
35
+ * @param config - See {@link MustAssignConfig}
36
+ *
37
+ * @example Ensure a salaried manager is always rostered
38
+ * ```ts
39
+ * createMustAssignRule({ memberIds: ["diana"] });
40
+ * ```
41
+ *
42
+ * @example Ensure all supervisors appear on the rota
43
+ * ```ts
44
+ * createMustAssignRule({ roleIds: ["supervisor"] });
45
+ * ```
46
+ */
47
+ export declare function createMustAssignRule(config: MustAssignConfig): CompilationRule;
48
+ export {};
49
+ //# sourceMappingURL=must-assign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"must-assign.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/must-assign.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAa3D,QAAA,MAAM,gBAAgB;;iOAI6B,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CA4C9E"}
@@ -0,0 +1,86 @@
1
+ import * as z from "zod";
2
+ import { DayOfWeekSchema } from "../../types.js";
3
+ import { priorityToPenalty, splitIntoWeeks } from "../utils.js";
4
+ import { entityScope, parseEntityScope, resolveMembersFromScope, ruleGroup, } from "./scope.types.js";
5
+ /** Internally always HIGH. Not user-configurable. */
6
+ const MUST_ASSIGN_PENALTY = priorityToPenalty("HIGH");
7
+ const MustAssignSchema = z
8
+ .object({
9
+ weekStartsOn: DayOfWeekSchema.optional(),
10
+ })
11
+ .and(entityScope(["members", "roles", "skills"]));
12
+ /**
13
+ * Guarantees that targeted members appear on the schedule.
14
+ *
15
+ * @remarks
16
+ * Use this for staffing obligations: salaried employees who are paid
17
+ * regardless of whether they work, or contracted staff who must be
18
+ * rostered. The solver ensures each targeted member has at least one
19
+ * assignment per scheduling week.
20
+ *
21
+ * Always compiles as a soft constraint (HIGH priority internally) so the
22
+ * schedule still generates when a member genuinely cannot be placed
23
+ * (e.g., full week of absences, no compatible shift patterns). Violations
24
+ * surface as validation warnings with distinct messaging from
25
+ * `min-days-week`.
26
+ *
27
+ * Unlike {@link createMinDaysWeekRule}, this rule communicates a staffing
28
+ * obligation rather than a scheduling preference. Validation messages
29
+ * reflect this: "Alice was not assigned (staffing obligation)" rather
30
+ * than "Alice worked 0 days, minimum was 1."
31
+ *
32
+ * @param config - See {@link MustAssignConfig}
33
+ *
34
+ * @example Ensure a salaried manager is always rostered
35
+ * ```ts
36
+ * createMustAssignRule({ memberIds: ["diana"] });
37
+ * ```
38
+ *
39
+ * @example Ensure all supervisors appear on the rota
40
+ * ```ts
41
+ * createMustAssignRule({ roleIds: ["supervisor"] });
42
+ * ```
43
+ */
44
+ export function createMustAssignRule(config) {
45
+ const parsed = MustAssignSchema.parse(config);
46
+ const scope = parseEntityScope(parsed);
47
+ const { weekStartsOn } = parsed;
48
+ const group = ruleGroup("must-assign", "Must assign", scope);
49
+ return {
50
+ compile(b) {
51
+ const members = resolveMembersFromScope(scope, b.members);
52
+ const weeks = splitIntoWeeks(b.days, weekStartsOn ?? b.weekStartsOn);
53
+ for (const emp of members) {
54
+ for (const weekDays of weeks) {
55
+ const terms = [];
56
+ for (const day of weekDays) {
57
+ for (const pattern of b.shiftPatterns) {
58
+ if (!b.canAssign(emp, pattern))
59
+ continue;
60
+ if (!b.patternAvailableOnDay(pattern, day))
61
+ continue;
62
+ terms.push({ var: b.assignment(emp.id, pattern.id, day), coeff: 1 });
63
+ }
64
+ }
65
+ if (terms.length === 0)
66
+ continue;
67
+ const weekLabel = weekDays[0];
68
+ const constraintId = `must-assign:${emp.id}:${weekLabel}`;
69
+ b.addSoftLinear(terms, ">=", 1, MUST_ASSIGN_PENALTY, constraintId);
70
+ b.reporter.trackConstraint({
71
+ id: constraintId,
72
+ type: "rule",
73
+ rule: "must-assign",
74
+ description: `${emp.id} not assigned in week starting ${weekLabel} (staffing obligation)`,
75
+ targetValue: 1,
76
+ comparator: ">=",
77
+ day: weekLabel,
78
+ context: { memberIds: [emp.id], days: weekDays },
79
+ group,
80
+ });
81
+ }
82
+ }
83
+ },
84
+ };
85
+ }
86
+ //# sourceMappingURL=must-assign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"must-assign.js","sourceRoot":"","sources":["../../../src/cpsat/rules/must-assign.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-daily-multiplier.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAmB7E,QAAA,MAAM,6BAA6B;;;mfAMwC,CAAC;AAE5E,mEAAmE;AACnE,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAc1F;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,6BAA6B,GACpC,eAAe,CAkIjB"}
1
+ {"version":3,"file":"overtime-daily-multiplier.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAoB7E,QAAA,MAAM,6BAA6B;;;mfAMwC,CAAC;AAE5E,mEAAmE;AACnE,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAE1F;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,6BAA6B,GACpC,eAAe,CAkIjB"}
@@ -2,6 +2,7 @@ import * as z from "zod";
2
2
  import { COST_CATEGORY } from "../cost.js";
3
3
  import { timeOfDayToMinutes, normalizeEndMinutes, unionMinutes, OBJECTIVE_WEIGHTS, } from "../utils.js";
4
4
  import { entityScope, timeScope, parseEntityScope, parseTimeScope, resolveMembersFromScope, resolveActiveDaysFromScope, } from "./scope.types.js";
5
+ import { getHourlyRate, patternDurationMinutes } from "./cost-utils.js";
5
6
  const OvertimeDailyMultiplierSchema = z
6
7
  .object({
7
8
  after: z.number().min(0),
@@ -9,18 +10,6 @@ const OvertimeDailyMultiplierSchema = z
9
10
  })
10
11
  .and(entityScope(["members", "roles", "skills"]))
11
12
  .and(timeScope(["dateRange", "specificDates", "dayOfWeek", "recurring"]));
12
- function getHourlyRate(emp) {
13
- if (!emp.pay)
14
- return undefined;
15
- if ("hourlyRate" in emp.pay)
16
- return emp.pay.hourlyRate;
17
- return undefined;
18
- }
19
- function patternDurationMinutes(pattern) {
20
- const start = timeOfDayToMinutes(pattern.startTime);
21
- const end = normalizeEndMinutes(start, timeOfDayToMinutes(pattern.endTime));
22
- return end - start;
23
- }
24
13
  /**
25
14
  * Creates a daily overtime rate multiplier rule.
26
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-daily-multiplier.js","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-multiplier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overtime-daily-multiplier.js","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,6BAA6B,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC;KACD,GAAG,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;KAChD,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAK5E;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAqC;IAErC,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,KAAK,GAAG,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC;IAE/B,OAAO;QACL,OAAO,CAAC,CAAC;YACP,IAAI,WAAW,IAAI,CAAC;gBAAE,OAAO;YAE7B,MAAM,aAAa,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,0BAA0B,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAEtE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAElE,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;YAEtD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBAEjC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAA0C,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAW,EAAE,CAAC;oBACzB,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;wBACtC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;4BAAE,SAAS;wBACzC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC;4BAAE,SAAS;wBACrD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBACpD,SAAS,CAAC,IAAI,CAAC;4BACb,KAAK;4BACL,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;yBACrE,CAAC,CAAC;wBACH,KAAK,CAAC,IAAI,CAAC;4BACT,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC;4BAC1C,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;yBACvC,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC;oBAC5E,IAAI,WAAW,KAAK,CAAC;wBAAE,SAAS;oBAEhC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,uBAAuB,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;oBAErF,CAAC,CAAC,SAAS,CACT;wBACE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;wBAC9B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;qBACvD,EACD,IAAI,EACJ,CAAC,gBAAgB,CAClB,CAAC;oBAEF,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;wBACb,MAAM,iBAAiB,GAAG,CAAC,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;wBAClE,IAAI,cAAc,EAAE,CAAC;4BACnB,MAAM,aAAa,GAAG,iBAAiB,GAAG,CAAC,CAAC,WAAY,CAAC,mBAAmB,CAAC;4BAC7E,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;wBAClF,CAAC;6BAAM,CAAC;4BACN,CAAC,CAAC,UAAU,CACV,WAAW,EACX,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAC9D,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CACF,WAA8B,EAC9B,OAAwC,EACxC,aAA0C;YAE1C,IAAI,WAAW,IAAI,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAE7C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAChF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpF,CAAC;YAEF,gEAAgE;YAChE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;YAEhE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,OAAO,GAAgC,EAAE,CAAC;YAEhD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;oBACpC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC;oBAChE,IAAI,eAAe,IAAI,CAAC;wBAAE,SAAS;oBAEnC,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,KAAK;wBACf,GAAG;wBACH,QAAQ,EAAE,aAAa,CAAC,QAAQ;wBAChC,MAAM,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE;qBACpD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-daily-surcharge.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-surcharge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAmB7E,QAAA,MAAM,4BAA4B;;;mfAMyC,CAAC;AAE5E,kEAAkE;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAQxF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,4BAA4B,GACnC,eAAe,CAmHjB"}
1
+ {"version":3,"file":"overtime-daily-surcharge.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-surcharge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAoB7E,QAAA,MAAM,4BAA4B;;;mfAMyC,CAAC;AAE5E,kEAAkE;AAClE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAExF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,4BAA4B,GACnC,eAAe,CAmHjB"}
@@ -2,6 +2,7 @@ import * as z from "zod";
2
2
  import { COST_CATEGORY } from "../cost.js";
3
3
  import { timeOfDayToMinutes, normalizeEndMinutes, unionMinutes, OBJECTIVE_WEIGHTS, } from "../utils.js";
4
4
  import { entityScope, timeScope, parseEntityScope, parseTimeScope, resolveMembersFromScope, resolveActiveDaysFromScope, } from "./scope.types.js";
5
+ import { patternDurationMinutes } from "./cost-utils.js";
5
6
  const OvertimeDailySurchargeSchema = z
6
7
  .object({
7
8
  after: z.number().min(0),
@@ -9,11 +10,6 @@ const OvertimeDailySurchargeSchema = z
9
10
  })
10
11
  .and(entityScope(["members", "roles", "skills"]))
11
12
  .and(timeScope(["dateRange", "specificDates", "dayOfWeek", "recurring"]));
12
- function patternDurationMinutes(pattern) {
13
- const start = timeOfDayToMinutes(pattern.startTime);
14
- const end = normalizeEndMinutes(start, timeOfDayToMinutes(pattern.endTime));
15
- return end - start;
16
- }
17
13
  /**
18
14
  * Creates a daily overtime flat surcharge rule.
19
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-daily-surcharge.js","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-surcharge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overtime-daily-surcharge.js","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-daily-surcharge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,4BAA4B,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC;KACD,GAAG,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;KAChD,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AAK5E;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,MAAoC;IAEpC,MAAM,MAAM,GAAG,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,KAAK,GAAG,EAAE,CAAC;IAEpC,OAAO;QACL,OAAO,CAAC,CAAC;YACP,IAAI,MAAM,IAAI,CAAC;gBAAE,OAAO;YAExB,MAAM,aAAa,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,0BAA0B,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAEtE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAElE,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;YACtD,MAAM,kBAAkB,GAAG,MAAM,GAAG,EAAE,CAAC;YAEvC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,SAAS,GAA0C,EAAE,CAAC;oBAC5D,MAAM,KAAK,GAAW,EAAE,CAAC;oBACzB,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;wBACtC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;4BAAE,SAAS;wBACzC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC;4BAAE,SAAS;wBACrD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBACpD,SAAS,CAAC,IAAI,CAAC;4BACb,KAAK;4BACL,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;yBACrE,CAAC,CAAC;wBACH,KAAK,CAAC,IAAI,CAAC;4BACT,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC;4BAC1C,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;yBACvC,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;oBAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC;oBAC5E,IAAI,WAAW,KAAK,CAAC;wBAAE,SAAS;oBAEhC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,4BAA4B,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;oBAE1F,CAAC,CAAC,SAAS,CACT;wBACE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;wBAC9B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;qBACvD,EACD,IAAI,EACJ,CAAC,gBAAgB,CAClB,CAAC;oBAEF,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,CAAC;wBAC3D,MAAM,aAAa,GAAG,iBAAiB,GAAG,CAAC,CAAC,WAAY,CAAC,mBAAmB,CAAC;wBAC7E,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAClF,CAAC;yBAAM,CAAC;wBACN,CAAC,CAAC,UAAU,CACV,WAAW,EACX,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAC9D,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CACF,WAA8B,EAC9B,OAAwC,EACxC,aAA0C;YAE1C,IAAI,MAAM,IAAI,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAExC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAChF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA+B,CAAC;YAEhE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACrC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,OAAO,GAAgC,EAAE,CAAC;YAEhD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;oBACpC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC;oBAChE,IAAI,eAAe,IAAI,CAAC;wBAAE,SAAS;oBAEnC,OAAO,CAAC,IAAI,CAAC;wBACX,QAAQ,EAAE,KAAK;wBACf,GAAG;wBACH,QAAQ,EAAE,aAAa,CAAC,QAAQ;wBAChC,MAAM,EAAE,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -4,7 +4,11 @@ declare const OvertimeTierSchema: z.ZodObject<{
4
4
  after: z.ZodNumber;
5
5
  factor: z.ZodNumber;
6
6
  }, z.core.$strip>;
7
- /** A single tier in a tiered overtime configuration. */
7
+ /**
8
+ * A single tier in a tiered overtime configuration.
9
+ *
10
+ * @category Cost Optimization
11
+ */
8
12
  export type OvertimeTier = z.infer<typeof OvertimeTierSchema>;
9
13
  declare const OvertimeTieredMultiplierSchema: z.ZodIntersection<z.ZodIntersection<z.ZodObject<{
10
14
  tiers: z.ZodArray<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-tiered-multiplier.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-tiered-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAoB7E,QAAA,MAAM,kBAAkB;;;iBAGtB,CAAC;AAEH,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,QAAA,MAAM,8BAA8B;;;;;;mfAMuC,CAAC;AAE5E,oEAAoE;AACpE,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAc5F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,8BAA8B,GACrC,eAAe,CA0PjB"}
1
+ {"version":3,"file":"overtime-tiered-multiplier.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-tiered-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAqB7E,QAAA,MAAM,kBAAkB;;;iBAGtB,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,QAAA,MAAM,8BAA8B;;;;;;mfAMuC,CAAC;AAE5E,oEAAoE;AACpE,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE5F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,8BAA8B,GACrC,eAAe,CA0PjB"}
@@ -3,6 +3,7 @@ import { DayOfWeekSchema } from "../../types.js";
3
3
  import { COST_CATEGORY } from "../cost.js";
4
4
  import { timeOfDayToMinutes, normalizeEndMinutes, splitIntoWeeks, unionMinutes, OBJECTIVE_WEIGHTS, } from "../utils.js";
5
5
  import { entityScope, timeScope, parseEntityScope, parseTimeScope, resolveMembersFromScope, resolveActiveDaysFromScope, } from "./scope.types.js";
6
+ import { getHourlyRate, patternDurationMinutes } from "./cost-utils.js";
6
7
  const OvertimeTierSchema = z.object({
7
8
  after: z.number().min(0),
8
9
  factor: z.number().min(1),
@@ -14,18 +15,6 @@ const OvertimeTieredMultiplierSchema = z
14
15
  })
15
16
  .and(entityScope(["members", "roles", "skills"]))
16
17
  .and(timeScope(["dateRange", "specificDates", "dayOfWeek", "recurring"]));
17
- function getHourlyRate(emp) {
18
- if (!emp.pay)
19
- return undefined;
20
- if ("hourlyRate" in emp.pay)
21
- return emp.pay.hourlyRate;
22
- return undefined;
23
- }
24
- function patternDurationMinutes(pattern) {
25
- const start = timeOfDayToMinutes(pattern.startTime);
26
- const end = normalizeEndMinutes(start, timeOfDayToMinutes(pattern.endTime));
27
- return end - start;
28
- }
29
18
  /**
30
19
  * Creates a multi-threshold weekly overtime multiplier rule.
31
20
  *
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-tiered-multiplier.js","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-tiered-multiplier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overtime-tiered-multiplier.js","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-tiered-multiplier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overtime-weekly-multiplier.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-weekly-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAoB7E,QAAA,MAAM,8BAA8B;;;;mfAOuC,CAAC;AAE5E,oEAAoE;AACpE,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAc5F;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,8BAA8B,GACrC,eAAe,CAsKjB"}
1
+ {"version":3,"file":"overtime-weekly-multiplier.d.ts","sourceRoot":"","sources":["../../../src/cpsat/rules/overtime-weekly-multiplier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,qBAAqB,CAAC;AAqB7E,QAAA,MAAM,8BAA8B;;;;mfAOuC,CAAC;AAE5E,oEAAoE;AACpE,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,8BAA8B,GACrC,eAAe,CAsKjB"}
@@ -3,6 +3,7 @@ import { DayOfWeekSchema } from "../../types.js";
3
3
  import { COST_CATEGORY } from "../cost.js";
4
4
  import { timeOfDayToMinutes, normalizeEndMinutes, splitIntoWeeks, unionMinutes, OBJECTIVE_WEIGHTS, } from "../utils.js";
5
5
  import { entityScope, timeScope, parseEntityScope, parseTimeScope, resolveMembersFromScope, resolveActiveDaysFromScope, } from "./scope.types.js";
6
+ import { getHourlyRate, patternDurationMinutes } from "./cost-utils.js";
6
7
  const OvertimeWeeklyMultiplierSchema = z
7
8
  .object({
8
9
  after: z.number().min(0),
@@ -11,18 +12,6 @@ const OvertimeWeeklyMultiplierSchema = z
11
12
  })
12
13
  .and(entityScope(["members", "roles", "skills"]))
13
14
  .and(timeScope(["dateRange", "specificDates", "dayOfWeek", "recurring"]));
14
- function getHourlyRate(emp) {
15
- if (!emp.pay)
16
- return undefined;
17
- if ("hourlyRate" in emp.pay)
18
- return emp.pay.hourlyRate;
19
- return undefined;
20
- }
21
- function patternDurationMinutes(pattern) {
22
- const start = timeOfDayToMinutes(pattern.startTime);
23
- const end = normalizeEndMinutes(start, timeOfDayToMinutes(pattern.endTime));
24
- return end - start;
25
- }
26
15
  /**
27
16
  * Creates a weekly overtime rate multiplier rule.
28
17
  *