@substrat-run/engine-workorder 0.4.3 → 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 +3 -77
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -25
- package/dist/index.js.map +1 -1
- package/dist/operations.d.ts +301 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +89 -0
- package/dist/operations.js.map +1 -0
- package/dist/schemas.d.ts +88 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +65 -0
- package/dist/schemas.js.map +1 -0
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { type Money } from '@substrat-run/contracts';
|
|
3
|
+
import { type BillableLine, type WorkOrder, type TimeEntry, type MaterialLine } from './schemas.js';
|
|
3
4
|
export { workorderEntities, workorderRow } from './entities.js';
|
|
5
|
+
export { billableLine, decimal, workOrder, timeEntry, materialLine, type BillableLine, type WorkOrder, type TimeEntry, type MaterialLine, } from './schemas.js';
|
|
6
|
+
export { workorderOperations, WORKORDER_PERMISSIONS } from './operations.js';
|
|
4
7
|
import { type ModuleRegistration, type OperationContext } from '@substrat-run/kernel';
|
|
5
8
|
export declare const PERM: {
|
|
6
9
|
create: string & z.$brand<"PermissionKey">;
|
|
@@ -107,26 +110,6 @@ export declare const workorderMigrations: {
|
|
|
107
110
|
version: string;
|
|
108
111
|
sql: string;
|
|
109
112
|
}[];
|
|
110
|
-
export declare const billableLine: z.ZodObject<{
|
|
111
|
-
article: z.ZodString;
|
|
112
|
-
description: z.ZodString;
|
|
113
|
-
qty: z.ZodString;
|
|
114
|
-
unit: z.ZodString;
|
|
115
|
-
unitPrice: z.ZodObject<{
|
|
116
|
-
amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
|
|
117
|
-
currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
|
|
118
|
-
}, z.core.$strip>;
|
|
119
|
-
lineTotal: z.ZodObject<{
|
|
120
|
-
amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
|
|
121
|
-
currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
|
|
122
|
-
}, z.core.$strip>;
|
|
123
|
-
sourceType: z.ZodEnum<{
|
|
124
|
-
material: "material";
|
|
125
|
-
time: "time";
|
|
126
|
-
}>;
|
|
127
|
-
sourceId: z.ZodString;
|
|
128
|
-
}, z.core.$strip>;
|
|
129
|
-
export type BillableLine = z.infer<typeof billableLine>;
|
|
130
113
|
export declare const createWorkOrderInput: z.ZodObject<{
|
|
131
114
|
facility: z.ZodObject<{
|
|
132
115
|
entityType: z.ZodString;
|
|
@@ -141,63 +124,6 @@ export declare const createWorkOrderInput: z.ZodObject<{
|
|
|
141
124
|
description: z.ZodOptional<z.ZodString>;
|
|
142
125
|
}, z.core.$strip>;
|
|
143
126
|
export type CreateWorkOrderInput = z.infer<typeof createWorkOrderInput>;
|
|
144
|
-
/**
|
|
145
|
-
* A work order as this engine PUBLISHES it — not as it stores it.
|
|
146
|
-
*
|
|
147
|
-
* Schema first, interface derived, matching `billableLine` and
|
|
148
|
-
* `createWorkOrderInput` above. A vertical declaring an operation that returns a
|
|
149
|
-
* work order uses this schema for its `output`; without it the vertical would
|
|
150
|
-
* have to transcribe this shape into Zod, which is a description held in
|
|
151
|
-
* agreement by nothing.
|
|
152
|
-
*
|
|
153
|
-
* Deliberately NOT the row (`workorderRow`). The stored row carries
|
|
154
|
-
* `facility_type` / `facility_id` as two snake_case columns; the published type
|
|
155
|
-
* carries one `EntityRef` and camelCase names. `status` is taken from the
|
|
156
|
-
* registry so storage and domain cannot disagree about the state set.
|
|
157
|
-
*/
|
|
158
|
-
export declare const workOrder: z.ZodObject<{
|
|
159
|
-
id: z.ZodString;
|
|
160
|
-
number: z.ZodNumber;
|
|
161
|
-
facility: z.ZodObject<{
|
|
162
|
-
entityType: z.ZodString;
|
|
163
|
-
entityId: z.ZodString;
|
|
164
|
-
}, z.core.$strip>;
|
|
165
|
-
customer: z.ZodObject<{
|
|
166
|
-
entityType: z.ZodString;
|
|
167
|
-
entityId: z.ZodString;
|
|
168
|
-
}, z.core.$strip>;
|
|
169
|
-
kind: z.ZodString;
|
|
170
|
-
title: z.ZodString;
|
|
171
|
-
description: z.ZodNullable<z.ZodString>;
|
|
172
|
-
status: z.ZodEnum<{
|
|
173
|
-
closed: "closed";
|
|
174
|
-
completed: "completed";
|
|
175
|
-
in_progress: "in_progress";
|
|
176
|
-
planned: "planned";
|
|
177
|
-
}>;
|
|
178
|
-
assignedTo: z.ZodNullable<z.ZodString>;
|
|
179
|
-
createdBy: z.ZodString;
|
|
180
|
-
createdAt: z.ZodString;
|
|
181
|
-
completedAt: z.ZodNullable<z.ZodString>;
|
|
182
|
-
}, z.core.$strip>;
|
|
183
|
-
export type WorkOrder = z.infer<typeof workOrder>;
|
|
184
|
-
export interface TimeEntry {
|
|
185
|
-
id: string;
|
|
186
|
-
order_id: string;
|
|
187
|
-
technician: string;
|
|
188
|
-
hours: string;
|
|
189
|
-
note: string | null;
|
|
190
|
-
reported_at: string;
|
|
191
|
-
}
|
|
192
|
-
export interface MaterialLine {
|
|
193
|
-
id: string;
|
|
194
|
-
order_id: string;
|
|
195
|
-
article: string;
|
|
196
|
-
qty: string;
|
|
197
|
-
note: string | null;
|
|
198
|
-
reported_by: string;
|
|
199
|
-
reported_at: string;
|
|
200
|
-
}
|
|
201
127
|
export declare function createWorkOrder(ctx: OperationContext, rawInput: CreateWorkOrderInput): WorkOrder;
|
|
202
128
|
export declare function getReportedLines(ctx: OperationContext, orderId: string): {
|
|
203
129
|
time: TimeEntry[];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAUL,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAUL,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAQ9B,eAAO,MAAM,IAAI;IACf,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;CACN,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;GAuC/B,CAAC;AAQF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAM/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAiExE,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,SAAS,CA0ChG;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAWjD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAQ9E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GACnD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CA4BpC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY3F;AA4HD,eAAO,MAAM,eAAe,EAAE,kBAa7B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { addMoney, dataSubjectId, entityRef, money, moduleManifest, moneyOf, permissionKey, } from '@substrat-run/contracts';
|
|
3
|
+
import { billableLine, decimal, workOrder, timeEntry, materialLine, } from './schemas.js';
|
|
3
4
|
import { workorderEntities } from './entities.js';
|
|
4
5
|
// The entity registry is PUBLIC: a composing vertical imports it to check
|
|
5
6
|
// relation edges naming this engine's entities, and to declare an operation's
|
|
6
7
|
// output without transcribing this engine's shape.
|
|
7
8
|
export { workorderEntities, workorderRow } from './entities.js';
|
|
9
|
+
export { billableLine, decimal, workOrder, timeEntry, materialLine, } from './schemas.js';
|
|
10
|
+
export { workorderOperations, WORKORDER_PERMISSIONS } from './operations.js';
|
|
8
11
|
import { assertAllowed, ulid, } from '@substrat-run/kernel';
|
|
9
12
|
// ============================================================================
|
|
10
13
|
// The work-order engine (demos/callout/spec/testrun.md §4.2/§5.2). Owns the state
|
|
@@ -99,17 +102,6 @@ export const workorderMigrations = [
|
|
|
99
102
|
// ---------------------------------------------------------------------------
|
|
100
103
|
// Schemas & shapes
|
|
101
104
|
// ---------------------------------------------------------------------------
|
|
102
|
-
const decimal = z.string().regex(/^\d+(\.\d{1,6})?$/);
|
|
103
|
-
export const billableLine = z.object({
|
|
104
|
-
article: z.string().min(1),
|
|
105
|
-
description: z.string().min(1),
|
|
106
|
-
qty: decimal,
|
|
107
|
-
unit: z.string().min(1),
|
|
108
|
-
unitPrice: money,
|
|
109
|
-
lineTotal: money,
|
|
110
|
-
sourceType: z.enum(['time', 'material']),
|
|
111
|
-
sourceId: z.string().min(1),
|
|
112
|
-
});
|
|
113
105
|
export const createWorkOrderInput = z.object({
|
|
114
106
|
facility: entityRef,
|
|
115
107
|
customer: entityRef,
|
|
@@ -131,20 +123,6 @@ export const createWorkOrderInput = z.object({
|
|
|
131
123
|
* carries one `EntityRef` and camelCase names. `status` is taken from the
|
|
132
124
|
* registry so storage and domain cannot disagree about the state set.
|
|
133
125
|
*/
|
|
134
|
-
export const workOrder = z.object({
|
|
135
|
-
id: z.string(),
|
|
136
|
-
number: z.number(),
|
|
137
|
-
facility: entityRef,
|
|
138
|
-
customer: entityRef,
|
|
139
|
-
kind: z.string(),
|
|
140
|
-
title: z.string(),
|
|
141
|
-
description: z.string().nullable(),
|
|
142
|
-
status: workorderEntities.workorder.fields.shape.status,
|
|
143
|
-
assignedTo: z.string().nullable(),
|
|
144
|
-
createdBy: z.string(),
|
|
145
|
-
createdAt: z.string(),
|
|
146
|
-
completedAt: z.string().nullable(),
|
|
147
|
-
});
|
|
148
126
|
const toWorkOrder = (r) => ({
|
|
149
127
|
id: r.id,
|
|
150
128
|
number: r.number,
|
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,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The work order engine's declared operation surface (#707/#738).
|
|
3
|
+
*
|
|
4
|
+
* An engine declaring its operations is what lets a VERTICAL bind them to its
|
|
5
|
+
* own URLs without restating them. Before this, `defineEngineRoutes` had to
|
|
6
|
+
* carry an input schema the vertical wrote itself — a local `z.object({ orderId
|
|
7
|
+
* })` standing in for a shape the engine only expressed as a TypeScript type —
|
|
8
|
+
* and the operation NAME was an unchecked string, because `ModuleRegistration`
|
|
9
|
+
* erases its keys.
|
|
10
|
+
*
|
|
11
|
+
* What is deliberately NOT here is `http`. An engine is entity-agnostic and owns
|
|
12
|
+
* no URL shape: a bike shop calls the same work order a repair, and both are
|
|
13
|
+
* right. The path is the composing vertical's decision, declared with
|
|
14
|
+
* `defineEngineRoutes` against these names.
|
|
15
|
+
*
|
|
16
|
+
* `createWorkOrder` is absent for a different reason — it is an in-scope
|
|
17
|
+
* function, not an operation. A vertical calls it inside its own transaction so
|
|
18
|
+
* it can price, label and link in one go; exposing it as an invocable operation
|
|
19
|
+
* would offer a second way in that skips all of that.
|
|
20
|
+
*/
|
|
21
|
+
import { z } from '@substrat-run/contracts';
|
|
22
|
+
/** The keys these operations check. Mirrors `PERM` in index.ts. */
|
|
23
|
+
export declare const WORKORDER_PERMISSIONS: readonly ['workorder:create', 'workorder:read', 'workorder:assign', 'workorder:report', 'workorder:complete', 'workorder:close'];
|
|
24
|
+
export declare const workorderOperations: {
|
|
25
|
+
readonly 'workorder/get': {
|
|
26
|
+
readonly summary: "One work order with everything reported against it";
|
|
27
|
+
readonly permission: {
|
|
28
|
+
readonly key: "workorder:read";
|
|
29
|
+
readonly entity: "workorder";
|
|
30
|
+
readonly idFrom: "orderId";
|
|
31
|
+
};
|
|
32
|
+
readonly input: z.ZodObject<{
|
|
33
|
+
orderId: z.ZodString;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
readonly output: z.ZodObject<{
|
|
36
|
+
order: z.ZodObject<{
|
|
37
|
+
id: z.ZodString;
|
|
38
|
+
number: z.ZodNumber;
|
|
39
|
+
facility: z.ZodObject<{
|
|
40
|
+
entityType: z.ZodString;
|
|
41
|
+
entityId: z.ZodString;
|
|
42
|
+
}, z.core.$strip>;
|
|
43
|
+
customer: z.ZodObject<{
|
|
44
|
+
entityType: z.ZodString;
|
|
45
|
+
entityId: z.ZodString;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
kind: z.ZodString;
|
|
48
|
+
title: z.ZodString;
|
|
49
|
+
description: z.ZodNullable<z.ZodString>;
|
|
50
|
+
status: z.ZodEnum<{
|
|
51
|
+
closed: "closed";
|
|
52
|
+
completed: "completed";
|
|
53
|
+
in_progress: "in_progress";
|
|
54
|
+
planned: "planned";
|
|
55
|
+
}>;
|
|
56
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
57
|
+
createdBy: z.ZodString;
|
|
58
|
+
createdAt: z.ZodString;
|
|
59
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
60
|
+
}, z.core.$strip>;
|
|
61
|
+
time: z.ZodArray<z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
order_id: z.ZodString;
|
|
64
|
+
technician: z.ZodString;
|
|
65
|
+
hours: z.ZodString;
|
|
66
|
+
note: z.ZodNullable<z.ZodString>;
|
|
67
|
+
reported_at: z.ZodString;
|
|
68
|
+
}, z.core.$strip>>;
|
|
69
|
+
material: z.ZodArray<z.ZodObject<{
|
|
70
|
+
id: z.ZodString;
|
|
71
|
+
order_id: z.ZodString;
|
|
72
|
+
article: z.ZodString;
|
|
73
|
+
qty: z.ZodString;
|
|
74
|
+
note: z.ZodNullable<z.ZodString>;
|
|
75
|
+
reported_by: z.ZodString;
|
|
76
|
+
reported_at: z.ZodString;
|
|
77
|
+
}, z.core.$strip>>;
|
|
78
|
+
}, z.core.$strip>;
|
|
79
|
+
};
|
|
80
|
+
readonly 'workorder/list': {
|
|
81
|
+
readonly summary: "Work orders, optionally filtered by status";
|
|
82
|
+
readonly permission: "workorder:read";
|
|
83
|
+
readonly input: z.ZodObject<{
|
|
84
|
+
status: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, z.core.$strip>;
|
|
86
|
+
readonly inputOptional: true;
|
|
87
|
+
readonly output: z.ZodArray<z.ZodObject<{
|
|
88
|
+
id: z.ZodString;
|
|
89
|
+
number: z.ZodNumber;
|
|
90
|
+
facility: z.ZodObject<{
|
|
91
|
+
entityType: z.ZodString;
|
|
92
|
+
entityId: z.ZodString;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
customer: z.ZodObject<{
|
|
95
|
+
entityType: z.ZodString;
|
|
96
|
+
entityId: z.ZodString;
|
|
97
|
+
}, z.core.$strip>;
|
|
98
|
+
kind: z.ZodString;
|
|
99
|
+
title: z.ZodString;
|
|
100
|
+
description: z.ZodNullable<z.ZodString>;
|
|
101
|
+
status: z.ZodEnum<{
|
|
102
|
+
closed: "closed";
|
|
103
|
+
completed: "completed";
|
|
104
|
+
in_progress: "in_progress";
|
|
105
|
+
planned: "planned";
|
|
106
|
+
}>;
|
|
107
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
108
|
+
createdBy: z.ZodString;
|
|
109
|
+
createdAt: z.ZodString;
|
|
110
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
};
|
|
113
|
+
readonly 'workorder/assign': {
|
|
114
|
+
readonly summary: "Assign a technician";
|
|
115
|
+
readonly permission: "workorder:assign";
|
|
116
|
+
readonly input: z.ZodObject<{
|
|
117
|
+
orderId: z.ZodString;
|
|
118
|
+
technician: z.ZodString;
|
|
119
|
+
}, z.core.$strip>;
|
|
120
|
+
readonly output: z.ZodObject<{
|
|
121
|
+
id: z.ZodString;
|
|
122
|
+
number: z.ZodNumber;
|
|
123
|
+
facility: z.ZodObject<{
|
|
124
|
+
entityType: z.ZodString;
|
|
125
|
+
entityId: z.ZodString;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
customer: z.ZodObject<{
|
|
128
|
+
entityType: z.ZodString;
|
|
129
|
+
entityId: z.ZodString;
|
|
130
|
+
}, z.core.$strip>;
|
|
131
|
+
kind: z.ZodString;
|
|
132
|
+
title: z.ZodString;
|
|
133
|
+
description: z.ZodNullable<z.ZodString>;
|
|
134
|
+
status: z.ZodEnum<{
|
|
135
|
+
closed: "closed";
|
|
136
|
+
completed: "completed";
|
|
137
|
+
in_progress: "in_progress";
|
|
138
|
+
planned: "planned";
|
|
139
|
+
}>;
|
|
140
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
141
|
+
createdBy: z.ZodString;
|
|
142
|
+
createdAt: z.ZodString;
|
|
143
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
144
|
+
}, z.core.$strip>;
|
|
145
|
+
};
|
|
146
|
+
readonly 'workorder/start': {
|
|
147
|
+
readonly summary: "Start the work";
|
|
148
|
+
readonly permission: "workorder:assign";
|
|
149
|
+
readonly input: z.ZodObject<{
|
|
150
|
+
orderId: z.ZodString;
|
|
151
|
+
}, z.core.$strip>;
|
|
152
|
+
readonly output: z.ZodObject<{
|
|
153
|
+
id: z.ZodString;
|
|
154
|
+
number: z.ZodNumber;
|
|
155
|
+
facility: z.ZodObject<{
|
|
156
|
+
entityType: z.ZodString;
|
|
157
|
+
entityId: z.ZodString;
|
|
158
|
+
}, z.core.$strip>;
|
|
159
|
+
customer: z.ZodObject<{
|
|
160
|
+
entityType: z.ZodString;
|
|
161
|
+
entityId: z.ZodString;
|
|
162
|
+
}, z.core.$strip>;
|
|
163
|
+
kind: z.ZodString;
|
|
164
|
+
title: z.ZodString;
|
|
165
|
+
description: z.ZodNullable<z.ZodString>;
|
|
166
|
+
status: z.ZodEnum<{
|
|
167
|
+
closed: "closed";
|
|
168
|
+
completed: "completed";
|
|
169
|
+
in_progress: "in_progress";
|
|
170
|
+
planned: "planned";
|
|
171
|
+
}>;
|
|
172
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
173
|
+
createdBy: z.ZodString;
|
|
174
|
+
createdAt: z.ZodString;
|
|
175
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
176
|
+
}, z.core.$strip>;
|
|
177
|
+
};
|
|
178
|
+
readonly 'workorder/report-time': {
|
|
179
|
+
readonly summary: "Report time against the order";
|
|
180
|
+
readonly permission: "workorder:report";
|
|
181
|
+
readonly input: z.ZodObject<{
|
|
182
|
+
orderId: z.ZodString;
|
|
183
|
+
hours: z.ZodString;
|
|
184
|
+
note: z.ZodOptional<z.ZodString>;
|
|
185
|
+
}, z.core.$strip>;
|
|
186
|
+
readonly output: z.ZodObject<{
|
|
187
|
+
id: z.ZodString;
|
|
188
|
+
order_id: z.ZodString;
|
|
189
|
+
technician: z.ZodString;
|
|
190
|
+
hours: z.ZodString;
|
|
191
|
+
note: z.ZodNullable<z.ZodString>;
|
|
192
|
+
reported_at: z.ZodString;
|
|
193
|
+
}, z.core.$strip>;
|
|
194
|
+
};
|
|
195
|
+
readonly 'workorder/report-material': {
|
|
196
|
+
readonly summary: "Report material against the order";
|
|
197
|
+
readonly permission: "workorder:report";
|
|
198
|
+
readonly input: z.ZodObject<{
|
|
199
|
+
orderId: z.ZodString;
|
|
200
|
+
article: z.ZodString;
|
|
201
|
+
qty: z.ZodString;
|
|
202
|
+
note: z.ZodOptional<z.ZodString>;
|
|
203
|
+
}, z.core.$strip>;
|
|
204
|
+
readonly output: z.ZodObject<{
|
|
205
|
+
id: z.ZodString;
|
|
206
|
+
order_id: z.ZodString;
|
|
207
|
+
article: z.ZodString;
|
|
208
|
+
qty: z.ZodString;
|
|
209
|
+
note: z.ZodNullable<z.ZodString>;
|
|
210
|
+
reported_by: z.ZodString;
|
|
211
|
+
reported_at: z.ZodString;
|
|
212
|
+
}, z.core.$strip>;
|
|
213
|
+
};
|
|
214
|
+
readonly 'workorder/complete': {
|
|
215
|
+
readonly summary: "Complete the order with its billable lines";
|
|
216
|
+
readonly permission: "workorder:complete";
|
|
217
|
+
readonly input: z.ZodObject<{
|
|
218
|
+
orderId: z.ZodString;
|
|
219
|
+
billable: z.ZodArray<z.ZodObject<{
|
|
220
|
+
article: z.ZodString;
|
|
221
|
+
description: z.ZodString;
|
|
222
|
+
qty: z.ZodString;
|
|
223
|
+
unit: z.ZodString;
|
|
224
|
+
unitPrice: z.ZodObject<{
|
|
225
|
+
amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
|
|
226
|
+
currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
|
|
227
|
+
}, z.core.$strip>;
|
|
228
|
+
lineTotal: z.ZodObject<{
|
|
229
|
+
amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
|
|
230
|
+
currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
|
|
231
|
+
}, z.core.$strip>;
|
|
232
|
+
sourceType: z.ZodEnum<{
|
|
233
|
+
material: "material";
|
|
234
|
+
time: "time";
|
|
235
|
+
}>;
|
|
236
|
+
sourceId: z.ZodString;
|
|
237
|
+
}, z.core.$strip>>;
|
|
238
|
+
}, z.core.$strip>;
|
|
239
|
+
readonly output: z.ZodObject<{
|
|
240
|
+
order: z.ZodObject<{
|
|
241
|
+
id: z.ZodString;
|
|
242
|
+
number: z.ZodNumber;
|
|
243
|
+
facility: z.ZodObject<{
|
|
244
|
+
entityType: z.ZodString;
|
|
245
|
+
entityId: z.ZodString;
|
|
246
|
+
}, z.core.$strip>;
|
|
247
|
+
customer: z.ZodObject<{
|
|
248
|
+
entityType: z.ZodString;
|
|
249
|
+
entityId: z.ZodString;
|
|
250
|
+
}, z.core.$strip>;
|
|
251
|
+
kind: z.ZodString;
|
|
252
|
+
title: z.ZodString;
|
|
253
|
+
description: z.ZodNullable<z.ZodString>;
|
|
254
|
+
status: z.ZodEnum<{
|
|
255
|
+
closed: "closed";
|
|
256
|
+
completed: "completed";
|
|
257
|
+
in_progress: "in_progress";
|
|
258
|
+
planned: "planned";
|
|
259
|
+
}>;
|
|
260
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
261
|
+
createdBy: z.ZodString;
|
|
262
|
+
createdAt: z.ZodString;
|
|
263
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
264
|
+
}, z.core.$strip>;
|
|
265
|
+
total: z.ZodString;
|
|
266
|
+
}, z.core.$strip>;
|
|
267
|
+
};
|
|
268
|
+
readonly 'workorder/close': {
|
|
269
|
+
readonly summary: "Close the order at hand-over";
|
|
270
|
+
readonly permission: "workorder:close";
|
|
271
|
+
readonly input: z.ZodObject<{
|
|
272
|
+
orderId: z.ZodString;
|
|
273
|
+
}, z.core.$strip>;
|
|
274
|
+
readonly output: z.ZodObject<{
|
|
275
|
+
id: z.ZodString;
|
|
276
|
+
number: z.ZodNumber;
|
|
277
|
+
facility: z.ZodObject<{
|
|
278
|
+
entityType: z.ZodString;
|
|
279
|
+
entityId: z.ZodString;
|
|
280
|
+
}, z.core.$strip>;
|
|
281
|
+
customer: z.ZodObject<{
|
|
282
|
+
entityType: z.ZodString;
|
|
283
|
+
entityId: z.ZodString;
|
|
284
|
+
}, z.core.$strip>;
|
|
285
|
+
kind: z.ZodString;
|
|
286
|
+
title: z.ZodString;
|
|
287
|
+
description: z.ZodNullable<z.ZodString>;
|
|
288
|
+
status: z.ZodEnum<{
|
|
289
|
+
closed: "closed";
|
|
290
|
+
completed: "completed";
|
|
291
|
+
in_progress: "in_progress";
|
|
292
|
+
planned: "planned";
|
|
293
|
+
}>;
|
|
294
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
295
|
+
createdBy: z.ZodString;
|
|
296
|
+
createdAt: z.ZodString;
|
|
297
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
298
|
+
}, z.core.$strip>;
|
|
299
|
+
};
|
|
300
|
+
};
|
|
301
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAI9D,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,YAChC,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,CACT,CAAC;AAIX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D9B,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The work order engine's declared operation surface (#707/#738).
|
|
3
|
+
*
|
|
4
|
+
* An engine declaring its operations is what lets a VERTICAL bind them to its
|
|
5
|
+
* own URLs without restating them. Before this, `defineEngineRoutes` had to
|
|
6
|
+
* carry an input schema the vertical wrote itself — a local `z.object({ orderId
|
|
7
|
+
* })` standing in for a shape the engine only expressed as a TypeScript type —
|
|
8
|
+
* and the operation NAME was an unchecked string, because `ModuleRegistration`
|
|
9
|
+
* erases its keys.
|
|
10
|
+
*
|
|
11
|
+
* What is deliberately NOT here is `http`. An engine is entity-agnostic and owns
|
|
12
|
+
* no URL shape: a bike shop calls the same work order a repair, and both are
|
|
13
|
+
* right. The path is the composing vertical's decision, declared with
|
|
14
|
+
* `defineEngineRoutes` against these names.
|
|
15
|
+
*
|
|
16
|
+
* `createWorkOrder` is absent for a different reason — it is an in-scope
|
|
17
|
+
* function, not an operation. A vertical calls it inside its own transaction so
|
|
18
|
+
* it can price, label and link in one go; exposing it as an invocable operation
|
|
19
|
+
* would offer a second way in that skips all of that.
|
|
20
|
+
*/
|
|
21
|
+
import { defineOperations, z } from '@substrat-run/contracts';
|
|
22
|
+
import { workorderEntities } from './entities.js';
|
|
23
|
+
import { billableLine, materialLine, timeEntry, workOrder } from './schemas.js';
|
|
24
|
+
/** The keys these operations check. Mirrors `PERM` in index.ts. */
|
|
25
|
+
export const WORKORDER_PERMISSIONS = [
|
|
26
|
+
'workorder:create',
|
|
27
|
+
'workorder:read',
|
|
28
|
+
'workorder:assign',
|
|
29
|
+
'workorder:report',
|
|
30
|
+
'workorder:complete',
|
|
31
|
+
'workorder:close',
|
|
32
|
+
];
|
|
33
|
+
const orderId = z.object({ orderId: z.string().min(1) });
|
|
34
|
+
export const workorderOperations = defineOperations(workorderEntities, WORKORDER_PERMISSIONS)({
|
|
35
|
+
'workorder/get': {
|
|
36
|
+
summary: 'One work order with everything reported against it',
|
|
37
|
+
permission: { key: 'workorder:read', entity: 'workorder', idFrom: 'orderId' },
|
|
38
|
+
input: orderId,
|
|
39
|
+
output: z.object({
|
|
40
|
+
order: workOrder,
|
|
41
|
+
time: z.array(timeEntry),
|
|
42
|
+
material: z.array(materialLine),
|
|
43
|
+
}),
|
|
44
|
+
},
|
|
45
|
+
'workorder/list': {
|
|
46
|
+
summary: 'Work orders, optionally filtered by status',
|
|
47
|
+
permission: 'workorder:read',
|
|
48
|
+
input: z.object({ status: z.string().optional() }),
|
|
49
|
+
inputOptional: true,
|
|
50
|
+
output: z.array(workOrder),
|
|
51
|
+
},
|
|
52
|
+
'workorder/assign': {
|
|
53
|
+
summary: 'Assign a technician',
|
|
54
|
+
permission: 'workorder:assign',
|
|
55
|
+
input: orderId.extend({ technician: z.string().min(1) }),
|
|
56
|
+
output: workOrder,
|
|
57
|
+
},
|
|
58
|
+
'workorder/start': {
|
|
59
|
+
summary: 'Start the work',
|
|
60
|
+
permission: 'workorder:assign',
|
|
61
|
+
input: orderId,
|
|
62
|
+
output: workOrder,
|
|
63
|
+
},
|
|
64
|
+
'workorder/report-time': {
|
|
65
|
+
summary: 'Report time against the order',
|
|
66
|
+
permission: 'workorder:report',
|
|
67
|
+
input: orderId.extend({ hours: z.string(), note: z.string().optional() }),
|
|
68
|
+
output: timeEntry,
|
|
69
|
+
},
|
|
70
|
+
'workorder/report-material': {
|
|
71
|
+
summary: 'Report material against the order',
|
|
72
|
+
permission: 'workorder:report',
|
|
73
|
+
input: orderId.extend({ article: z.string(), qty: z.string(), note: z.string().optional() }),
|
|
74
|
+
output: materialLine,
|
|
75
|
+
},
|
|
76
|
+
'workorder/complete': {
|
|
77
|
+
summary: 'Complete the order with its billable lines',
|
|
78
|
+
permission: 'workorder:complete',
|
|
79
|
+
input: orderId.extend({ billable: z.array(billableLine) }),
|
|
80
|
+
output: z.object({ order: workOrder, total: z.string() }),
|
|
81
|
+
},
|
|
82
|
+
'workorder/close': {
|
|
83
|
+
summary: 'Close the order at hand-over',
|
|
84
|
+
permission: 'workorder:close',
|
|
85
|
+
input: orderId,
|
|
86
|
+
output: workOrder,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shapes this engine PUBLISHES — what a composing vertical returns, stores
|
|
3
|
+
* against, and declares operations over.
|
|
4
|
+
*
|
|
5
|
+
* A file of their own because both `index.ts` (which implements against them)
|
|
6
|
+
* and `operations.ts` (which declares against them) need them. With the schemas
|
|
7
|
+
* living in `index.ts` and `index.ts` re-exporting `operations.ts`, importing
|
|
8
|
+
* the engine ran `operations.ts` before `workOrder` was initialised — a cycle
|
|
9
|
+
* that a warm `dist` hides and a tool importing the module finds immediately.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from '@substrat-run/contracts';
|
|
12
|
+
/** Exact decimals as strings — six places, never a float. */
|
|
13
|
+
export declare const decimal: z.ZodString;
|
|
14
|
+
export declare const billableLine: z.ZodObject<{
|
|
15
|
+
article: z.ZodString;
|
|
16
|
+
description: z.ZodString;
|
|
17
|
+
qty: z.ZodString;
|
|
18
|
+
unit: z.ZodString;
|
|
19
|
+
unitPrice: z.ZodObject<{
|
|
20
|
+
amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
|
|
21
|
+
currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
lineTotal: z.ZodObject<{
|
|
24
|
+
amount: z.core.$ZodBranded<z.ZodString, "MoneyAmount", "out">;
|
|
25
|
+
currency: z.core.$ZodBranded<z.ZodString, "CurrencyCode", "out">;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
sourceType: z.ZodEnum<{
|
|
28
|
+
material: "material";
|
|
29
|
+
time: "time";
|
|
30
|
+
}>;
|
|
31
|
+
sourceId: z.ZodString;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type BillableLine = z.infer<typeof billableLine>;
|
|
34
|
+
export declare const workOrder: z.ZodObject<{
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
number: z.ZodNumber;
|
|
37
|
+
facility: z.ZodObject<{
|
|
38
|
+
entityType: z.ZodString;
|
|
39
|
+
entityId: z.ZodString;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
customer: z.ZodObject<{
|
|
42
|
+
entityType: z.ZodString;
|
|
43
|
+
entityId: z.ZodString;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
kind: z.ZodString;
|
|
46
|
+
title: z.ZodString;
|
|
47
|
+
description: z.ZodNullable<z.ZodString>;
|
|
48
|
+
status: z.ZodEnum<{
|
|
49
|
+
closed: "closed";
|
|
50
|
+
completed: "completed";
|
|
51
|
+
in_progress: "in_progress";
|
|
52
|
+
planned: "planned";
|
|
53
|
+
}>;
|
|
54
|
+
assignedTo: z.ZodNullable<z.ZodString>;
|
|
55
|
+
createdBy: z.ZodString;
|
|
56
|
+
createdAt: z.ZodString;
|
|
57
|
+
completedAt: z.ZodNullable<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type WorkOrder = z.infer<typeof workOrder>;
|
|
60
|
+
/**
|
|
61
|
+
* A reported time entry, as the engine publishes it.
|
|
62
|
+
*
|
|
63
|
+
* A Zod schema rather than an interface because a vertical declaring an
|
|
64
|
+
* operation that RETURNS this needs something to point at — `output` takes a
|
|
65
|
+
* schema, and the alternative is every composer retyping the shape, which is a
|
|
66
|
+
* description held in agreement by nothing.
|
|
67
|
+
*/
|
|
68
|
+
export declare const timeEntry: z.ZodObject<{
|
|
69
|
+
id: z.ZodString;
|
|
70
|
+
order_id: z.ZodString;
|
|
71
|
+
technician: z.ZodString;
|
|
72
|
+
hours: z.ZodString;
|
|
73
|
+
note: z.ZodNullable<z.ZodString>;
|
|
74
|
+
reported_at: z.ZodString;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export type TimeEntry = z.infer<typeof timeEntry>;
|
|
77
|
+
/** A reported material line, as the engine publishes it. */
|
|
78
|
+
export declare const materialLine: z.ZodObject<{
|
|
79
|
+
id: z.ZodString;
|
|
80
|
+
order_id: z.ZodString;
|
|
81
|
+
article: z.ZodString;
|
|
82
|
+
qty: z.ZodString;
|
|
83
|
+
note: z.ZodNullable<z.ZodString>;
|
|
84
|
+
reported_by: z.ZodString;
|
|
85
|
+
reported_at: z.ZodString;
|
|
86
|
+
}, z.core.$strip>;
|
|
87
|
+
export type MaterialLine = z.infer<typeof materialLine>;
|
|
88
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAG9D,6DAA6D;AAC7D,eAAO,MAAM,OAAO,aAAwC,CAAC;AAE7D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;iBASvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;iBAapB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS;;;;;;;iBAOpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,4DAA4D;AAC5D,eAAO,MAAM,YAAY;;;;;;;;iBAQvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/schemas.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shapes this engine PUBLISHES — what a composing vertical returns, stores
|
|
3
|
+
* against, and declares operations over.
|
|
4
|
+
*
|
|
5
|
+
* A file of their own because both `index.ts` (which implements against them)
|
|
6
|
+
* and `operations.ts` (which declares against them) need them. With the schemas
|
|
7
|
+
* living in `index.ts` and `index.ts` re-exporting `operations.ts`, importing
|
|
8
|
+
* the engine ran `operations.ts` before `workOrder` was initialised — a cycle
|
|
9
|
+
* that a warm `dist` hides and a tool importing the module finds immediately.
|
|
10
|
+
*/
|
|
11
|
+
import { entityRef, money, z } from '@substrat-run/contracts';
|
|
12
|
+
import { workorderEntities } from './entities.js';
|
|
13
|
+
/** Exact decimals as strings — six places, never a float. */
|
|
14
|
+
export const decimal = z.string().regex(/^\d+(\.\d{1,6})?$/);
|
|
15
|
+
export const billableLine = z.object({
|
|
16
|
+
article: z.string().min(1),
|
|
17
|
+
description: z.string().min(1),
|
|
18
|
+
qty: decimal,
|
|
19
|
+
unit: z.string().min(1),
|
|
20
|
+
unitPrice: money,
|
|
21
|
+
lineTotal: money,
|
|
22
|
+
sourceType: z.enum(['time', 'material']),
|
|
23
|
+
sourceId: z.string().min(1),
|
|
24
|
+
});
|
|
25
|
+
export const workOrder = z.object({
|
|
26
|
+
id: z.string(),
|
|
27
|
+
number: z.number(),
|
|
28
|
+
facility: entityRef,
|
|
29
|
+
customer: entityRef,
|
|
30
|
+
kind: z.string(),
|
|
31
|
+
title: z.string(),
|
|
32
|
+
description: z.string().nullable(),
|
|
33
|
+
status: workorderEntities.workorder.fields.shape.status,
|
|
34
|
+
assignedTo: z.string().nullable(),
|
|
35
|
+
createdBy: z.string(),
|
|
36
|
+
createdAt: z.string(),
|
|
37
|
+
completedAt: z.string().nullable(),
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* A reported time entry, as the engine publishes it.
|
|
41
|
+
*
|
|
42
|
+
* A Zod schema rather than an interface because a vertical declaring an
|
|
43
|
+
* operation that RETURNS this needs something to point at — `output` takes a
|
|
44
|
+
* schema, and the alternative is every composer retyping the shape, which is a
|
|
45
|
+
* description held in agreement by nothing.
|
|
46
|
+
*/
|
|
47
|
+
export const timeEntry = z.object({
|
|
48
|
+
id: z.string(),
|
|
49
|
+
order_id: z.string(),
|
|
50
|
+
technician: z.string(),
|
|
51
|
+
hours: z.string(),
|
|
52
|
+
note: z.string().nullable(),
|
|
53
|
+
reported_at: z.string(),
|
|
54
|
+
});
|
|
55
|
+
/** A reported material line, as the engine publishes it. */
|
|
56
|
+
export const materialLine = z.object({
|
|
57
|
+
id: z.string(),
|
|
58
|
+
order_id: z.string(),
|
|
59
|
+
article: z.string(),
|
|
60
|
+
qty: z.string(),
|
|
61
|
+
note: z.string().nullable(),
|
|
62
|
+
reported_by: z.string(),
|
|
63
|
+
reported_at: z.string(),
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,GAAG,EAAE,OAAO;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAGH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/engine-workorder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Substrat engine: work orders + time + material — one engine, one state machine, append-only reporting",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"zod": "^4.4.3",
|
|
29
|
-
"@substrat-run/
|
|
30
|
-
"@substrat-run/
|
|
29
|
+
"@substrat-run/kernel": "^0.72.0",
|
|
30
|
+
"@substrat-run/contracts": "^0.72.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"typescript": "^7.0.0",
|
|
34
34
|
"vitest": "^3.0.0",
|
|
35
|
-
"@substrat-run/
|
|
36
|
-
"@substrat-run/
|
|
35
|
+
"@substrat-run/engine-test-kit": "^0.2.0",
|
|
36
|
+
"@substrat-run/model-emit": "0.2.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc -p tsconfig.json",
|