@substrat-run/engine-booking 0.4.2 → 0.5.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.
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import { type Money } from '@substrat-run/contracts';
9
9
  * Additive only, like every other engine surface: new reasons may appear, existing ones
10
10
  * do not change spelling.
11
11
  */
12
- export declare const BOOKING_CONFLICT_REASONS: readonly ['already_joined', 'already_left', 'capacity_below_joined', 'hold_expired', 'invalid_transition', 'not_yet_expired', 'reservation_full', 'resource_inactive'];
12
+ export declare const BOOKING_CONFLICT_REASONS: readonly ['already_joined', 'already_left', 'capacity_below_joined', 'hold_expired', "invalid_transition", 'not_yet_expired', 'reservation_full', 'resource_inactive'];
13
13
  export type BookingConflictReason = (typeof BOOKING_CONFLICT_REASONS)[number];
14
14
  export { bookingEntities, reservationRow, resourceRow } from './entities.js';
15
15
  import { type ModuleRegistration, type OperationContext } from '@substrat-run/kernel';
@@ -91,6 +91,13 @@ export declare const bookingManifest: {
91
91
  idColumn?: string | undefined;
92
92
  tokenizer?: "prefix" | "substring" | undefined;
93
93
  }[] | undefined;
94
+ lists?: {
95
+ entityType: string;
96
+ sortable: string[];
97
+ filterable?: string[] | undefined;
98
+ table?: string | undefined;
99
+ idColumn?: string | undefined;
100
+ }[] | undefined;
94
101
  ui?: {
95
102
  routes?: {
96
103
  path: string;
@@ -131,6 +138,15 @@ export declare class SlotUnavailable extends Error {
131
138
  readonly code = "SLOT_UNAVAILABLE";
132
139
  constructor(resourceId: string, startsAt: string, endsAt: string);
133
140
  }
141
+ /**
142
+ * The reservation's states — **taken from the entity registry, not restated**.
143
+ *
144
+ * These seven values used to be written out twice: here, and as the `state`
145
+ * column's `z.enum` in `entities.ts`. Two descriptions of one fact, agreeing
146
+ * only by everyone remembering to change both (#844). Reading the column's own
147
+ * schema makes storage and domain unable to disagree, the same way
148
+ * `engine-workorder` takes its published `status` from the registry.
149
+ */
134
150
  export declare const reservationState: z.ZodEnum<{
135
151
  cancelled: "cancelled";
136
152
  completed: "completed";
@@ -347,4 +363,87 @@ export declare function availability(ctx: OperationContext, input: {
347
363
  now?: string;
348
364
  }): FreeInterval[];
349
365
  export declare const bookingModule: ModuleRegistration;
366
+ /**
367
+ * The reservation's state machine, declared (#844).
368
+ *
369
+ * ## `on` versus `allow` — the distinction this engine forced
370
+ *
371
+ * Three of the nine guards gate operations that move NOTHING. `booking/move`
372
+ * changes a reservation's times, `booking/open` its fill target, `booking/join`
373
+ * adds a participant — each legal only in `held` or `confirmed`, and none of
374
+ * them a transition. Declaring them as edges would have put three self-loops on
375
+ * the diagram that no code performs.
376
+ *
377
+ * ## Why `booking/join` is `allow` even though joining can confirm
378
+ *
379
+ * A join that fills the last place calls `confirmReservation` — so a join CAN
380
+ * end with a confirmed reservation. It is still not an edge. The move is
381
+ * `booking/confirm`'s, performed by the in-scope function join composes, and it
382
+ * goes through this same check on the way. Declaring `join: 'confirmed'` would
383
+ * claim every join confirms, which is false for all but the last one.
384
+ *
385
+ * That is the composition rule holding: an engine composed BY CALL gets its
386
+ * invariant from the callee, so the machine describes what each verb does
387
+ * itself, not what its callees might do next.
388
+ *
389
+ * ## Lazy expiry is not an edge either
390
+ *
391
+ * `held → expired` IS declared — `booking/expire` performs it. What is not
392
+ * declared is the lapse: a hold past its deadline reads as `expired` through
393
+ * `effectiveStateOf` without any transition occurring, which is a projection for
394
+ * display and allocation. The condition on the edge (`not_yet_expired`) stays in
395
+ * the handler, where a lifecycle deliberately cannot reach.
396
+ *
397
+ * ## No `extensible` states
398
+ *
399
+ * Every state here carries an allocation or capacity consequence, and the four
400
+ * terminal ones release capacity. Refining any of them is not a vertical's to do
401
+ * yet, and the absence says so rather than leaving it to be inferred.
402
+ */
403
+ export declare const bookingLifecycles: {
404
+ readonly reservation: {
405
+ readonly field: "state";
406
+ readonly initial: "held";
407
+ readonly states: {
408
+ /** A deadline-bearing claim on capacity. */
409
+ readonly held: {
410
+ readonly on: {
411
+ readonly 'booking/confirm': "confirmed";
412
+ readonly 'booking/expire': "expired";
413
+ readonly 'booking/cancel': "cancelled";
414
+ };
415
+ readonly allow: readonly ["booking/join", "booking/open", "booking/move"];
416
+ };
417
+ /** Capacity is committed. `complete` may skip `in_service` — starting is optional. */
418
+ readonly confirmed: {
419
+ readonly on: {
420
+ readonly 'booking/start': "in_service";
421
+ readonly 'booking/complete': "completed";
422
+ readonly 'booking/no-show': "no_show";
423
+ readonly 'booking/cancel': "cancelled";
424
+ };
425
+ readonly allow: readonly ["booking/join", "booking/open", "booking/move"];
426
+ };
427
+ /** Under way. No longer cancellable, and no longer re-timeable. */
428
+ readonly in_service: {
429
+ readonly on: {
430
+ readonly 'booking/complete': "completed";
431
+ readonly 'booking/no-show': "no_show";
432
+ };
433
+ };
434
+ readonly expired: {
435
+ readonly terminal: true;
436
+ };
437
+ readonly cancelled: {
438
+ readonly terminal: true;
439
+ };
440
+ readonly completed: {
441
+ readonly terminal: true;
442
+ };
443
+ readonly no_show: {
444
+ readonly terminal: true;
445
+ };
446
+ };
447
+ };
448
+ };
350
449
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { dataSubjectId, moduleManifest, money, permissionKey, substratError, } from '@substrat-run/contracts';
2
+ import { assertTransition, dataSubjectId, defineLifecycles, INVALID_TRANSITION, moduleManifest, money, permissionKey, substratError, } from '@substrat-run/contracts';
3
3
  /**
4
4
  * The conflict reasons this engine raises — its own vocabulary, narrowing the platform's
5
5
  * `conflict` code (#113). Exported so a vertical can branch on WHY a refusal happened
@@ -14,7 +14,9 @@ export const BOOKING_CONFLICT_REASONS = [
14
14
  'already_left',
15
15
  'capacity_below_joined',
16
16
  'hold_expired',
17
- 'invalid_transition',
17
+ // Raised by `assertTransition` from the declared lifecycle (#844), not by this
18
+ // file — so it is the shared constant rather than a second spelling of it.
19
+ INVALID_TRANSITION,
18
20
  'not_yet_expired',
19
21
  'reservation_full',
20
22
  'resource_inactive',
@@ -24,6 +26,7 @@ const conflict = (reason, message) => substratError('conflict', message, { reaso
24
26
  // The entity registry is PUBLIC: a vertical composing this engine needs the
25
27
  // entity-type constants its relation edges name, and the row schema to declare
26
28
  // an operation's output against without retyping this engine's shape.
29
+ import { bookingEntities } from './entities.js';
27
30
  export { bookingEntities, reservationRow, resourceRow } from './entities.js';
28
31
  import { assertAllowed, ulid, } from '@substrat-run/kernel';
29
32
  // ============================================================================
@@ -156,8 +159,12 @@ const instantIn = z
156
159
  .string()
157
160
  .refine((s) => !Number.isNaN(Date.parse(s)), { message: 'invalid instant' })
158
161
  .transform(toInstant);
159
- /** `now` is injectable so hold expiry is testable and replayable; it defaults to wall clock. */
160
- const nowOr = (now) => (now ? toInstant(now) : new Date().toISOString());
162
+ /**
163
+ * `now` is injectable so hold expiry is testable and replayable; absent, it is the
164
+ * operation's instant (#812) rather than a fresh wall-clock reading, so every
165
+ * expiry decision inside one operation is judged against the same moment.
166
+ */
167
+ const nowOr = (ctx, now) => (now ? toInstant(now) : ctx.now());
161
168
  // ---------------------------------------------------------------------------
162
169
  // Errors
163
170
  // ---------------------------------------------------------------------------
@@ -178,15 +185,16 @@ export class SlotUnavailable extends Error {
178
185
  // ---------------------------------------------------------------------------
179
186
  // Schemas & shapes
180
187
  // ---------------------------------------------------------------------------
181
- export const reservationState = z.enum([
182
- 'held',
183
- 'confirmed',
184
- 'in_service',
185
- 'completed',
186
- 'expired',
187
- 'cancelled',
188
- 'no_show',
189
- ]);
188
+ /**
189
+ * The reservation's states — **taken from the entity registry, not restated**.
190
+ *
191
+ * These seven values used to be written out twice: here, and as the `state`
192
+ * column's `z.enum` in `entities.ts`. Two descriptions of one fact, agreeing
193
+ * only by everyone remembering to change both (#844). Reading the column's own
194
+ * schema makes storage and domain unable to disagree, the same way
195
+ * `engine-workorder` takes its published `status` from the registry.
196
+ */
197
+ export const reservationState = bookingEntities.reservation.fields.shape.state;
190
198
  /** States that consume capacity. `held` additionally requires an unexpired `expires_at`. */
191
199
  const LIVE_STATES = ['held', 'confirmed', 'in_service'];
192
200
  export const createResourceInput = z.object({
@@ -288,10 +296,26 @@ function getRow(ctx, id) {
288
296
  throw substratError('not_found', `reservation not found: ${id}`);
289
297
  return row;
290
298
  }
291
- function requireState(row, ...allowed) {
292
- if (!allowed.includes(row.state)) {
293
- throw conflict('invalid_transition', `invalid transition: reservation ${row.id} is '${row.state}', requires ${allowed.join('|')}`);
294
- }
299
+ /**
300
+ * The declared machine, applied (#844).
301
+ *
302
+ * The seven states used to be written out twice — once as the `state` enum in
303
+ * `entities.ts`, once as `reservationState` above (now derived from it) — and
304
+ * the EDGES between them a third time, as the states each of these nine call
305
+ * sites happened to pass. The
306
+ * machine now lives in `bookingLifecycles` (bottom of this file), where the
307
+ * compiler holds it to that enum.
308
+ *
309
+ * **Gated on the STORED state, not the effective one, and that is deliberate.**
310
+ * Lazy expiry means a `held` row past its deadline reads as `expired`
311
+ * (`effectiveStateOf`) — but that is a projection for display and allocation,
312
+ * not a transition that happened. `confirmReservation` still refuses a lapsed
313
+ * hold; it does so with its own `hold_expired` reason, which tells a caller
314
+ * something `invalid_transition` never could. Feeding the effective state in
315
+ * here would collapse those two refusals into one worse message.
316
+ */
317
+ function requireTransition(row, operation) {
318
+ assertTransition(bookingLifecycles.reservation, `reservation ${row.id}`, row.state, operation);
295
319
  }
296
320
  /** Participants who have not left — the count the fill target is measured against. */
297
321
  function activeParticipants(ctx, reservationId) {
@@ -335,7 +359,7 @@ function allocatedOver(ctx, resourceId, startsAt, endsAt, now, excludeReservatio
335
359
  export function createResource(ctx, rawInput) {
336
360
  const input = createResourceInput.parse(rawInput);
337
361
  const id = ulid();
338
- const createdAt = new Date().toISOString();
362
+ const createdAt = ctx.now();
339
363
  ctx.sql.exec(`INSERT INTO booking_resources (id, kind, name, capacity, active, created_at)
340
364
  VALUES (?, ?, ?, ?, 1, ?)`, [id, input.kind, input.name, input.capacity ?? 1, createdAt]);
341
365
  ctx.emit({
@@ -370,7 +394,7 @@ export function listResources(ctx, kind) {
370
394
  */
371
395
  export function holdReservation(ctx, rawInput) {
372
396
  const input = holdReservationInput.parse(rawInput);
373
- const now = nowOr(input.now);
397
+ const now = nowOr(ctx, input.now);
374
398
  if (input.startsAt >= input.endsAt) {
375
399
  throw substratError('validation_failed', `invalid interval: ${input.startsAt} is not before ${input.endsAt}`);
376
400
  }
@@ -425,8 +449,8 @@ export function holdReservation(ctx, rawInput) {
425
449
  */
426
450
  export function confirmReservation(ctx, input) {
427
451
  const row = getRow(ctx, input.reservationId);
428
- requireState(row, 'held');
429
- const now = nowOr(input.now);
452
+ requireTransition(row, 'booking/confirm');
453
+ const now = nowOr(ctx, input.now);
430
454
  if (row.expires_at && row.expires_at <= now) {
431
455
  throw conflict('hold_expired', `hold expired at ${row.expires_at}`);
432
456
  }
@@ -450,7 +474,7 @@ export function confirmReservation(ctx, input) {
450
474
  participantCount: activeParticipants(ctx, row.id).length,
451
475
  },
452
476
  });
453
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
477
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
454
478
  }
455
479
  /**
456
480
  * Expire a hold whose deadline has passed. Idempotent-ish: only `held` rows move.
@@ -459,8 +483,8 @@ export function confirmReservation(ctx, input) {
459
483
  */
460
484
  export function expireReservation(ctx, input) {
461
485
  const row = getRow(ctx, input.reservationId);
462
- requireState(row, 'held');
463
- const now = nowOr(input.now);
486
+ requireTransition(row, 'booking/expire');
487
+ const now = nowOr(ctx, input.now);
464
488
  if (!row.expires_at || row.expires_at > now) {
465
489
  throw conflict('not_yet_expired', `reservation ${row.id} has not expired yet`);
466
490
  }
@@ -487,8 +511,8 @@ export function expireReservation(ctx, input) {
487
511
  export function joinReservation(ctx, rawInput) {
488
512
  const input = joinReservationInput.parse(rawInput);
489
513
  const row = getRow(ctx, input.reservationId);
490
- requireState(row, 'held', 'confirmed');
491
- const now = nowOr(input.now);
514
+ requireTransition(row, 'booking/join');
515
+ const now = nowOr(ctx, input.now);
492
516
  const active = activeParticipants(ctx, row.id);
493
517
  if (active.some((p) => p.party_ref === input.partyRef)) {
494
518
  throw conflict('already_joined', `party ${input.partyRef} has already joined ${row.id}`);
@@ -538,7 +562,7 @@ export function joinReservation(ctx, rawInput) {
538
562
  */
539
563
  export function openReservation(ctx, input) {
540
564
  const row = getRow(ctx, input.reservationId);
541
- requireState(row, 'held', 'confirmed');
565
+ requireTransition(row, 'booking/open');
542
566
  const joined = activeParticipants(ctx, row.id).length;
543
567
  if (input.fillTarget !== null && input.fillTarget < joined) {
544
568
  throw conflict('capacity_below_joined', `cannot open ${input.fillTarget} places: ${joined} are already on this reservation`);
@@ -561,11 +585,11 @@ export function openReservation(ctx, input) {
561
585
  participantCount: joined,
562
586
  },
563
587
  });
564
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
588
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
565
589
  }
566
590
  export function leaveReservation(ctx, input) {
567
591
  const row = getRow(ctx, input.reservationId);
568
- const now = nowOr(input.now);
592
+ const now = nowOr(ctx, input.now);
569
593
  const participant = ctx.sql.query('SELECT * FROM booking_participants WHERE id = ? AND reservation_id = ?', [input.participantId, row.id])[0];
570
594
  if (!participant)
571
595
  throw substratError('not_found', `participant not found: ${input.participantId}`);
@@ -590,7 +614,7 @@ export function leaveReservation(ctx, input) {
590
614
  }
591
615
  export function cancelReservation(ctx, input) {
592
616
  const row = getRow(ctx, input.reservationId);
593
- requireState(row, 'held', 'confirmed');
617
+ requireTransition(row, 'booking/cancel');
594
618
  ctx.sql.exec(`UPDATE booking_reservations SET state = 'cancelled' WHERE id = ?`, [row.id]);
595
619
  ctx.emit({
596
620
  type: 'booking.cancelled',
@@ -606,7 +630,7 @@ export function cancelReservation(ctx, input) {
606
630
  participantCount: activeParticipants(ctx, row.id).length,
607
631
  },
608
632
  });
609
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
633
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
610
634
  }
611
635
  /**
612
636
  * Reschedule to another slot and/or resource, keeping the reservation's identity
@@ -624,8 +648,8 @@ export function cancelReservation(ctx, input) {
624
648
  export function moveReservation(ctx, rawInput) {
625
649
  const input = moveReservationInput.parse(rawInput);
626
650
  const row = getRow(ctx, input.reservationId);
627
- requireState(row, 'held', 'confirmed');
628
- const now = nowOr(input.now);
651
+ requireTransition(row, 'booking/move');
652
+ const now = nowOr(ctx, input.now);
629
653
  const targetResourceId = input.resourceId ?? row.resource_id;
630
654
  let startsAt = input.startsAt ?? row.starts_at;
631
655
  let endsAt;
@@ -666,11 +690,11 @@ export function moveReservation(ctx, rawInput) {
666
690
  participantCount: activeParticipants(ctx, row.id).length,
667
691
  },
668
692
  });
669
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
693
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
670
694
  }
671
695
  export function startReservation(ctx, input) {
672
696
  const row = getRow(ctx, input.reservationId);
673
- requireState(row, 'confirmed');
697
+ requireTransition(row, 'booking/start');
674
698
  ctx.sql.exec(`UPDATE booking_reservations SET state = 'in_service' WHERE id = ?`, [row.id]);
675
699
  ctx.emit({
676
700
  type: 'booking.started',
@@ -679,7 +703,7 @@ export function startReservation(ctx, input) {
679
703
  piiClass: 'none',
680
704
  payload: { reservationId: row.id, resourceId: row.resource_id },
681
705
  });
682
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
706
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
683
707
  }
684
708
  /**
685
709
  * The terminal success transition. The payload is deliberately **fat** — resource,
@@ -689,7 +713,7 @@ export function startReservation(ctx, input) {
689
713
  */
690
714
  export function completeReservation(ctx, input) {
691
715
  const row = getRow(ctx, input.reservationId);
692
- requireState(row, 'confirmed', 'in_service');
716
+ requireTransition(row, 'booking/complete');
693
717
  const resource = getResourceRow(ctx, row.resource_id);
694
718
  ctx.sql.exec(`UPDATE booking_reservations SET state = 'completed' WHERE id = ?`, [row.id]);
695
719
  ctx.emit({
@@ -706,11 +730,11 @@ export function completeReservation(ctx, input) {
706
730
  participantCount: activeParticipants(ctx, row.id).length,
707
731
  },
708
732
  });
709
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
733
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
710
734
  }
711
735
  export function markNoShow(ctx, input) {
712
736
  const row = getRow(ctx, input.reservationId);
713
- requireState(row, 'confirmed', 'in_service');
737
+ requireTransition(row, 'booking/no-show');
714
738
  ctx.sql.exec(`UPDATE booking_reservations SET state = 'no_show' WHERE id = ?`, [row.id]);
715
739
  ctx.emit({
716
740
  type: 'booking.no-show',
@@ -725,11 +749,11 @@ export function markNoShow(ctx, input) {
725
749
  participantCount: activeParticipants(ctx, row.id).length,
726
750
  },
727
751
  });
728
- return toReservation(getRow(ctx, row.id), nowOr(input.now));
752
+ return toReservation(getRow(ctx, row.id), nowOr(ctx, input.now));
729
753
  }
730
754
  export function getReservation(ctx, reservationId, now) {
731
755
  return {
732
- reservation: toReservation(getRow(ctx, reservationId), nowOr(now)),
756
+ reservation: toReservation(getRow(ctx, reservationId), nowOr(ctx, now)),
733
757
  participants: allParticipants(ctx, reservationId),
734
758
  };
735
759
  }
@@ -749,7 +773,7 @@ export function listReservations(ctx, input) {
749
773
  params.push(toInstant(input.from));
750
774
  }
751
775
  const where = clauses.length ? ` WHERE ${clauses.join(' AND ')}` : '';
752
- const now = nowOr(input.now);
776
+ const now = nowOr(ctx, input.now);
753
777
  return ctx.sql
754
778
  .query(`SELECT * FROM booking_reservations${where} ORDER BY starts_at, id`, params)
755
779
  .map((r) => toReservation(r, now));
@@ -770,7 +794,7 @@ export function availability(ctx, input) {
770
794
  const to = toInstant(input.to);
771
795
  if (from >= to)
772
796
  return [];
773
- const now = nowOr(input.now);
797
+ const now = nowOr(ctx, input.now);
774
798
  const resource = getResourceRow(ctx, input.resourceId);
775
799
  if (resource.active !== 1)
776
800
  return [];
@@ -879,27 +903,114 @@ const availabilityOp = async (ctx, input) => {
879
903
  assertAllowed(await ctx.check(PERM.read));
880
904
  return availability(ctx, input);
881
905
  };
906
+ /**
907
+ * The registered handlers, extracted so the lifecycle below can be checked
908
+ * against them.
909
+ *
910
+ * This is why booking's lifecycle lives at the bottom of `index.ts` rather than
911
+ * in its own `lifecycle.ts` the way workorder's does: booking has not adopted
912
+ * `defineOperations`, so the only description of its operation surface is this
913
+ * map — and a separate file importing it would close a cycle. Declaring an
914
+ * operation-name list beside it instead would be exactly the second description
915
+ * this change exists to delete.
916
+ */
917
+ const OPERATIONS = {
918
+ 'booking/create-resource': createResourceOp,
919
+ 'booking/set-resource-active': setResourceActiveOp,
920
+ 'booking/list-resources': listResourcesOp,
921
+ 'booking/hold': holdOp,
922
+ 'booking/confirm': confirmOp,
923
+ 'booking/expire': expireOp,
924
+ 'booking/join': joinOp,
925
+ 'booking/leave': leaveOp,
926
+ 'booking/cancel': cancelOp,
927
+ 'booking/move': moveOp,
928
+ 'booking/open': openOp,
929
+ 'booking/start': startOp,
930
+ 'booking/complete': completeOp,
931
+ 'booking/no-show': noShowOp,
932
+ 'booking/get': getOp,
933
+ 'booking/list': listOp,
934
+ 'booking/availability': availabilityOp,
935
+ };
882
936
  export const bookingModule = {
883
937
  manifest: bookingManifest,
884
938
  migrations: bookingMigrations,
885
- operations: {
886
- 'booking/create-resource': createResourceOp,
887
- 'booking/set-resource-active': setResourceActiveOp,
888
- 'booking/list-resources': listResourcesOp,
889
- 'booking/hold': holdOp,
890
- 'booking/confirm': confirmOp,
891
- 'booking/expire': expireOp,
892
- 'booking/join': joinOp,
893
- 'booking/leave': leaveOp,
894
- 'booking/cancel': cancelOp,
895
- 'booking/move': moveOp,
896
- 'booking/open': openOp,
897
- 'booking/start': startOp,
898
- 'booking/complete': completeOp,
899
- 'booking/no-show': noShowOp,
900
- 'booking/get': getOp,
901
- 'booking/list': listOp,
902
- 'booking/availability': availabilityOp,
903
- },
939
+ operations: OPERATIONS,
904
940
  };
941
+ /**
942
+ * The reservation's state machine, declared (#844).
943
+ *
944
+ * ## `on` versus `allow` — the distinction this engine forced
945
+ *
946
+ * Three of the nine guards gate operations that move NOTHING. `booking/move`
947
+ * changes a reservation's times, `booking/open` its fill target, `booking/join`
948
+ * adds a participant — each legal only in `held` or `confirmed`, and none of
949
+ * them a transition. Declaring them as edges would have put three self-loops on
950
+ * the diagram that no code performs.
951
+ *
952
+ * ## Why `booking/join` is `allow` even though joining can confirm
953
+ *
954
+ * A join that fills the last place calls `confirmReservation` — so a join CAN
955
+ * end with a confirmed reservation. It is still not an edge. The move is
956
+ * `booking/confirm`'s, performed by the in-scope function join composes, and it
957
+ * goes through this same check on the way. Declaring `join: 'confirmed'` would
958
+ * claim every join confirms, which is false for all but the last one.
959
+ *
960
+ * That is the composition rule holding: an engine composed BY CALL gets its
961
+ * invariant from the callee, so the machine describes what each verb does
962
+ * itself, not what its callees might do next.
963
+ *
964
+ * ## Lazy expiry is not an edge either
965
+ *
966
+ * `held → expired` IS declared — `booking/expire` performs it. What is not
967
+ * declared is the lapse: a hold past its deadline reads as `expired` through
968
+ * `effectiveStateOf` without any transition occurring, which is a projection for
969
+ * display and allocation. The condition on the edge (`not_yet_expired`) stays in
970
+ * the handler, where a lifecycle deliberately cannot reach.
971
+ *
972
+ * ## No `extensible` states
973
+ *
974
+ * Every state here carries an allocation or capacity consequence, and the four
975
+ * terminal ones release capacity. Refining any of them is not a vertical's to do
976
+ * yet, and the absence says so rather than leaving it to be inferred.
977
+ */
978
+ export const bookingLifecycles = defineLifecycles(bookingEntities, OPERATIONS)({
979
+ reservation: {
980
+ field: 'state',
981
+ initial: 'held',
982
+ states: {
983
+ /** A deadline-bearing claim on capacity. */
984
+ held: {
985
+ on: {
986
+ 'booking/confirm': 'confirmed',
987
+ 'booking/expire': 'expired',
988
+ 'booking/cancel': 'cancelled',
989
+ },
990
+ allow: ['booking/join', 'booking/open', 'booking/move'],
991
+ },
992
+ /** Capacity is committed. `complete` may skip `in_service` — starting is optional. */
993
+ confirmed: {
994
+ on: {
995
+ 'booking/start': 'in_service',
996
+ 'booking/complete': 'completed',
997
+ 'booking/no-show': 'no_show',
998
+ 'booking/cancel': 'cancelled',
999
+ },
1000
+ allow: ['booking/join', 'booking/open', 'booking/move'],
1001
+ },
1002
+ /** Under way. No longer cancellable, and no longer re-timeable. */
1003
+ in_service: {
1004
+ on: {
1005
+ 'booking/complete': 'completed',
1006
+ 'booking/no-show': 'no_show',
1007
+ },
1008
+ },
1009
+ expired: { terminal: true },
1010
+ cancelled: { terminal: true },
1011
+ completed: { terminal: true },
1012
+ no_show: { terminal: true },
1013
+ },
1014
+ },
1015
+ });
905
1016
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The artifact of record for this engine (#697/#844).
3
+ *
4
+ * It imports the lifecycle from `index.ts` rather than a `lifecycle.ts`, because
5
+ * that is where booking's operation map lives — see the note on `OPERATIONS`.
6
+ * Nothing imports this file back, so the direction stays acyclic.
7
+ */
8
+ export declare const bookingModel: import("@substrat-run/contracts").EmittedModel;
9
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,gDAAgE,CAAC"}
package/dist/model.js ADDED
@@ -0,0 +1,12 @@
1
+ import { emitModel } from '@substrat-run/contracts';
2
+ import { bookingEntities } from './entities.js';
3
+ import { bookingLifecycles } from './index.js';
4
+ /**
5
+ * The artifact of record for this engine (#697/#844).
6
+ *
7
+ * It imports the lifecycle from `index.ts` rather than a `lifecycle.ts`, because
8
+ * that is where booking's operation map lives — see the note on `OPERATIONS`.
9
+ * Nothing imports this file back, so the direction stays acyclic.
10
+ */
11
+ export const bookingModel = emitModel(bookingEntities, { lifecycles: bookingLifecycles });
12
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/engine-booking",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "description": "Substrat engine: reservations — resource + interval + capacity, one allocation invariant, no locks",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -25,15 +25,15 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@substrat-run/contracts": "^0.82.0",
29
- "@substrat-run/kernel": "^0.82.0"
28
+ "@substrat-run/contracts": "^0.84.0",
29
+ "@substrat-run/kernel": "^0.84.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "^7.0.0",
33
33
  "vitest": "^3.2.7",
34
34
  "zod": "^4.4.3",
35
- "@substrat-run/engine-test-kit": "^0.3.9",
36
- "@substrat-run/model-emit": "0.5.3"
35
+ "@substrat-run/model-emit": "0.7.0",
36
+ "@substrat-run/engine-test-kit": "^0.3.11"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "zod": "^4.4.0"