@naisys/erp 3.0.0-beta.3
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.
Potentially problematic release.
This version of @naisys/erp might be problematic. Click here for more details.
- package/bin/naisys-erp +2 -0
- package/client-dist/android-chrome-192x192.png +0 -0
- package/client-dist/android-chrome-512x512.png +0 -0
- package/client-dist/apple-touch-icon.png +0 -0
- package/client-dist/assets/index-45dVo30p.css +1 -0
- package/client-dist/assets/index-Dffms7F_.js +168 -0
- package/client-dist/assets/naisys-logo-CzoPnn5I.webp +0 -0
- package/client-dist/favicon.ico +0 -0
- package/client-dist/index.html +42 -0
- package/client-dist/site.webmanifest +22 -0
- package/dist/api-reference.d.ts +10 -0
- package/dist/api-reference.js +101 -0
- package/dist/audit.d.ts +5 -0
- package/dist/audit.js +14 -0
- package/dist/auth-middleware.d.ts +18 -0
- package/dist/auth-middleware.js +203 -0
- package/dist/dbConfig.d.ts +5 -0
- package/dist/dbConfig.js +10 -0
- package/dist/erpDb.d.ts +10 -0
- package/dist/erpDb.js +34 -0
- package/dist/erpServer.d.ts +10 -0
- package/dist/erpServer.js +321 -0
- package/dist/error-handler.d.ts +7 -0
- package/dist/error-handler.js +17 -0
- package/dist/generated/prisma/client.d.ts +154 -0
- package/dist/generated/prisma/client.js +35 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +637 -0
- package/dist/generated/prisma/commonInputTypes.js +11 -0
- package/dist/generated/prisma/enums.d.ts +59 -0
- package/dist/generated/prisma/enums.js +60 -0
- package/dist/generated/prisma/internal/class.d.ts +406 -0
- package/dist/generated/prisma/internal/class.js +50 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +2722 -0
- package/dist/generated/prisma/internal/prismaNamespace.js +366 -0
- package/dist/generated/prisma/models/Attachment.d.ts +1455 -0
- package/dist/generated/prisma/models/Attachment.js +2 -0
- package/dist/generated/prisma/models/AuditLog.d.ts +1359 -0
- package/dist/generated/prisma/models/AuditLog.js +2 -0
- package/dist/generated/prisma/models/Field.d.ts +1880 -0
- package/dist/generated/prisma/models/Field.js +2 -0
- package/dist/generated/prisma/models/FieldAttachment.d.ts +1245 -0
- package/dist/generated/prisma/models/FieldAttachment.js +2 -0
- package/dist/generated/prisma/models/FieldRecord.d.ts +1625 -0
- package/dist/generated/prisma/models/FieldRecord.js +2 -0
- package/dist/generated/prisma/models/FieldSet.d.ts +1577 -0
- package/dist/generated/prisma/models/FieldSet.js +2 -0
- package/dist/generated/prisma/models/FieldValue.d.ts +1908 -0
- package/dist/generated/prisma/models/FieldValue.js +2 -0
- package/dist/generated/prisma/models/Item.d.ts +1858 -0
- package/dist/generated/prisma/models/Item.js +2 -0
- package/dist/generated/prisma/models/ItemInstance.d.ts +1987 -0
- package/dist/generated/prisma/models/ItemInstance.js +2 -0
- package/dist/generated/prisma/models/LaborTicket.d.ts +1867 -0
- package/dist/generated/prisma/models/LaborTicket.js +2 -0
- package/dist/generated/prisma/models/Operation.d.ts +2578 -0
- package/dist/generated/prisma/models/Operation.js +2 -0
- package/dist/generated/prisma/models/OperationDependency.d.ts +1434 -0
- package/dist/generated/prisma/models/OperationDependency.js +2 -0
- package/dist/generated/prisma/models/OperationFieldRef.d.ts +1539 -0
- package/dist/generated/prisma/models/OperationFieldRef.js +2 -0
- package/dist/generated/prisma/models/OperationRun.d.ts +2563 -0
- package/dist/generated/prisma/models/OperationRun.js +2 -0
- package/dist/generated/prisma/models/OperationRunComment.d.ts +1366 -0
- package/dist/generated/prisma/models/OperationRunComment.js +2 -0
- package/dist/generated/prisma/models/Order.d.ts +1931 -0
- package/dist/generated/prisma/models/Order.js +2 -0
- package/dist/generated/prisma/models/OrderRevision.d.ts +1962 -0
- package/dist/generated/prisma/models/OrderRevision.js +2 -0
- package/dist/generated/prisma/models/OrderRun.d.ts +2310 -0
- package/dist/generated/prisma/models/OrderRun.js +2 -0
- package/dist/generated/prisma/models/SchemaVersion.d.ts +985 -0
- package/dist/generated/prisma/models/SchemaVersion.js +2 -0
- package/dist/generated/prisma/models/Session.d.ts +1213 -0
- package/dist/generated/prisma/models/Session.js +2 -0
- package/dist/generated/prisma/models/Step.d.ts +2180 -0
- package/dist/generated/prisma/models/Step.js +2 -0
- package/dist/generated/prisma/models/StepRun.d.ts +1963 -0
- package/dist/generated/prisma/models/StepRun.js +2 -0
- package/dist/generated/prisma/models/User.d.ts +11819 -0
- package/dist/generated/prisma/models/User.js +2 -0
- package/dist/generated/prisma/models/UserPermission.d.ts +1348 -0
- package/dist/generated/prisma/models/UserPermission.js +2 -0
- package/dist/generated/prisma/models/WorkCenter.d.ts +1657 -0
- package/dist/generated/prisma/models/WorkCenter.js +2 -0
- package/dist/generated/prisma/models/WorkCenterUser.d.ts +1390 -0
- package/dist/generated/prisma/models/WorkCenterUser.js +2 -0
- package/dist/generated/prisma/models.d.ts +28 -0
- package/dist/generated/prisma/models.js +2 -0
- package/dist/hateoas.d.ts +7 -0
- package/dist/hateoas.js +61 -0
- package/dist/route-helpers.d.ts +318 -0
- package/dist/route-helpers.js +220 -0
- package/dist/routes/admin.d.ts +3 -0
- package/dist/routes/admin.js +147 -0
- package/dist/routes/audit.d.ts +3 -0
- package/dist/routes/audit.js +36 -0
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.js +112 -0
- package/dist/routes/dispatch.d.ts +3 -0
- package/dist/routes/dispatch.js +174 -0
- package/dist/routes/inventory.d.ts +3 -0
- package/dist/routes/inventory.js +70 -0
- package/dist/routes/item-fields.d.ts +3 -0
- package/dist/routes/item-fields.js +220 -0
- package/dist/routes/item-instances.d.ts +3 -0
- package/dist/routes/item-instances.js +426 -0
- package/dist/routes/items.d.ts +3 -0
- package/dist/routes/items.js +252 -0
- package/dist/routes/labor-tickets.d.ts +3 -0
- package/dist/routes/labor-tickets.js +268 -0
- package/dist/routes/operation-dependencies.d.ts +3 -0
- package/dist/routes/operation-dependencies.js +170 -0
- package/dist/routes/operation-field-refs.d.ts +3 -0
- package/dist/routes/operation-field-refs.js +263 -0
- package/dist/routes/operation-run-comments.d.ts +3 -0
- package/dist/routes/operation-run-comments.js +108 -0
- package/dist/routes/operation-run-transitions.d.ts +3 -0
- package/dist/routes/operation-run-transitions.js +249 -0
- package/dist/routes/operation-runs.d.ts +112 -0
- package/dist/routes/operation-runs.js +299 -0
- package/dist/routes/operations.d.ts +3 -0
- package/dist/routes/operations.js +283 -0
- package/dist/routes/order-revision-transitions.d.ts +3 -0
- package/dist/routes/order-revision-transitions.js +86 -0
- package/dist/routes/order-revisions.d.ts +51 -0
- package/dist/routes/order-revisions.js +327 -0
- package/dist/routes/order-run-transitions.d.ts +3 -0
- package/dist/routes/order-run-transitions.js +215 -0
- package/dist/routes/order-runs.d.ts +58 -0
- package/dist/routes/order-runs.js +335 -0
- package/dist/routes/orders.d.ts +3 -0
- package/dist/routes/orders.js +262 -0
- package/dist/routes/root.d.ts +3 -0
- package/dist/routes/root.js +123 -0
- package/dist/routes/schemas.d.ts +3 -0
- package/dist/routes/schemas.js +31 -0
- package/dist/routes/step-field-attachments.d.ts +3 -0
- package/dist/routes/step-field-attachments.js +231 -0
- package/dist/routes/step-fields.d.ts +100 -0
- package/dist/routes/step-fields.js +315 -0
- package/dist/routes/step-run-fields.d.ts +3 -0
- package/dist/routes/step-run-fields.js +438 -0
- package/dist/routes/step-run-transitions.d.ts +3 -0
- package/dist/routes/step-run-transitions.js +113 -0
- package/dist/routes/step-runs.d.ts +332 -0
- package/dist/routes/step-runs.js +324 -0
- package/dist/routes/steps.d.ts +3 -0
- package/dist/routes/steps.js +283 -0
- package/dist/routes/user-permissions.d.ts +3 -0
- package/dist/routes/user-permissions.js +100 -0
- package/dist/routes/users.d.ts +57 -0
- package/dist/routes/users.js +381 -0
- package/dist/routes/work-centers.d.ts +3 -0
- package/dist/routes/work-centers.js +280 -0
- package/dist/schema-registry.d.ts +3 -0
- package/dist/schema-registry.js +45 -0
- package/dist/services/attachment-service.d.ts +33 -0
- package/dist/services/attachment-service.js +118 -0
- package/dist/services/field-ref-service.d.ts +96 -0
- package/dist/services/field-ref-service.js +74 -0
- package/dist/services/field-service.d.ts +49 -0
- package/dist/services/field-service.js +114 -0
- package/dist/services/field-value-service.d.ts +61 -0
- package/dist/services/field-value-service.js +256 -0
- package/dist/services/item-instance-service.d.ts +152 -0
- package/dist/services/item-instance-service.js +155 -0
- package/dist/services/item-service.d.ts +47 -0
- package/dist/services/item-service.js +56 -0
- package/dist/services/labor-ticket-service.d.ts +40 -0
- package/dist/services/labor-ticket-service.js +148 -0
- package/dist/services/log-file-service.d.ts +4 -0
- package/dist/services/log-file-service.js +11 -0
- package/dist/services/operation-dependency-service.d.ts +33 -0
- package/dist/services/operation-dependency-service.js +30 -0
- package/dist/services/operation-run-comment-service.d.ts +17 -0
- package/dist/services/operation-run-comment-service.js +26 -0
- package/dist/services/operation-run-service.d.ts +126 -0
- package/dist/services/operation-run-service.js +347 -0
- package/dist/services/operation-service.d.ts +47 -0
- package/dist/services/operation-service.js +132 -0
- package/dist/services/order-revision-service.d.ts +53 -0
- package/dist/services/order-revision-service.js +264 -0
- package/dist/services/order-run-service.d.ts +138 -0
- package/dist/services/order-run-service.js +356 -0
- package/dist/services/order-service.d.ts +15 -0
- package/dist/services/order-service.js +68 -0
- package/dist/services/revision-diff-service.d.ts +3 -0
- package/dist/services/revision-diff-service.js +194 -0
- package/dist/services/step-run-service.d.ts +172 -0
- package/dist/services/step-run-service.js +106 -0
- package/dist/services/step-service.d.ts +104 -0
- package/dist/services/step-service.js +89 -0
- package/dist/services/user-service.d.ts +185 -0
- package/dist/services/user-service.js +132 -0
- package/dist/services/work-center-service.d.ts +29 -0
- package/dist/services/work-center-service.js +106 -0
- package/dist/supervisorAuth.d.ts +3 -0
- package/dist/supervisorAuth.js +16 -0
- package/dist/userService.d.ts +20 -0
- package/dist/userService.js +118 -0
- package/package.json +69 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
export declare const includeStepRunWithFields: {
|
|
2
|
+
readonly step: {
|
|
3
|
+
readonly select: {
|
|
4
|
+
readonly seqNo: true;
|
|
5
|
+
readonly title: true;
|
|
6
|
+
readonly instructions: true;
|
|
7
|
+
readonly multiSet: true;
|
|
8
|
+
readonly fieldSet: {
|
|
9
|
+
readonly select: {
|
|
10
|
+
readonly fields: {
|
|
11
|
+
readonly select: {
|
|
12
|
+
readonly id: true;
|
|
13
|
+
readonly seqNo: true;
|
|
14
|
+
readonly label: true;
|
|
15
|
+
readonly type: true;
|
|
16
|
+
readonly isArray: true;
|
|
17
|
+
readonly required: true;
|
|
18
|
+
};
|
|
19
|
+
readonly orderBy: {
|
|
20
|
+
readonly seqNo: "asc";
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
readonly fieldRecord: {
|
|
28
|
+
readonly include: {
|
|
29
|
+
readonly fieldValues: {
|
|
30
|
+
readonly select: {
|
|
31
|
+
readonly id: true;
|
|
32
|
+
readonly fieldId: true;
|
|
33
|
+
readonly setIndex: true;
|
|
34
|
+
readonly value: true;
|
|
35
|
+
readonly fieldAttachments: {
|
|
36
|
+
readonly select: {
|
|
37
|
+
readonly attachment: {
|
|
38
|
+
readonly select: {
|
|
39
|
+
readonly publicId: true;
|
|
40
|
+
readonly filename: true;
|
|
41
|
+
readonly fileSize: true;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
readonly orderBy: {
|
|
48
|
+
readonly setIndex: "asc";
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
readonly createdBy: {
|
|
54
|
+
readonly select: {
|
|
55
|
+
readonly username: true;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
readonly updatedBy: {
|
|
59
|
+
readonly select: {
|
|
60
|
+
readonly username: true;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export type StepRunWithStepAndFields = {
|
|
65
|
+
id: number;
|
|
66
|
+
operationRunId: number;
|
|
67
|
+
stepId: number;
|
|
68
|
+
completed: boolean;
|
|
69
|
+
statusNote: string | null;
|
|
70
|
+
createdAt: Date;
|
|
71
|
+
updatedAt: Date;
|
|
72
|
+
step: {
|
|
73
|
+
seqNo: number;
|
|
74
|
+
title: string;
|
|
75
|
+
instructions: string;
|
|
76
|
+
multiSet: boolean;
|
|
77
|
+
fieldSet: {
|
|
78
|
+
fields: {
|
|
79
|
+
id: number;
|
|
80
|
+
seqNo: number;
|
|
81
|
+
label: string;
|
|
82
|
+
type: string;
|
|
83
|
+
isArray: boolean;
|
|
84
|
+
required: boolean;
|
|
85
|
+
}[];
|
|
86
|
+
} | null;
|
|
87
|
+
};
|
|
88
|
+
fieldRecordId: number | null;
|
|
89
|
+
fieldRecord: {
|
|
90
|
+
id: number;
|
|
91
|
+
fieldValues: {
|
|
92
|
+
id: number;
|
|
93
|
+
fieldId: number;
|
|
94
|
+
setIndex: number;
|
|
95
|
+
value: string;
|
|
96
|
+
fieldAttachments: {
|
|
97
|
+
attachment: {
|
|
98
|
+
publicId: string;
|
|
99
|
+
filename: string;
|
|
100
|
+
fileSize: number;
|
|
101
|
+
};
|
|
102
|
+
}[];
|
|
103
|
+
}[];
|
|
104
|
+
} | null;
|
|
105
|
+
createdBy: {
|
|
106
|
+
username: string;
|
|
107
|
+
};
|
|
108
|
+
updatedBy: {
|
|
109
|
+
username: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
export declare const includeStepRun: {
|
|
113
|
+
readonly step: {
|
|
114
|
+
readonly select: {
|
|
115
|
+
readonly seqNo: true;
|
|
116
|
+
readonly title: true;
|
|
117
|
+
readonly instructions: true;
|
|
118
|
+
readonly multiSet: true;
|
|
119
|
+
readonly fieldSet: {
|
|
120
|
+
readonly select: {
|
|
121
|
+
readonly _count: {
|
|
122
|
+
readonly select: {
|
|
123
|
+
readonly fields: true;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
readonly createdBy: {
|
|
131
|
+
readonly select: {
|
|
132
|
+
readonly username: true;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
readonly updatedBy: {
|
|
136
|
+
readonly select: {
|
|
137
|
+
readonly username: true;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
export type StepRunWithStep = {
|
|
142
|
+
id: number;
|
|
143
|
+
operationRunId: number;
|
|
144
|
+
stepId: number;
|
|
145
|
+
completed: boolean;
|
|
146
|
+
statusNote: string | null;
|
|
147
|
+
fieldRecordId: number | null;
|
|
148
|
+
createdAt: Date;
|
|
149
|
+
updatedAt: Date;
|
|
150
|
+
step: {
|
|
151
|
+
seqNo: number;
|
|
152
|
+
title: string;
|
|
153
|
+
instructions: string;
|
|
154
|
+
multiSet: boolean;
|
|
155
|
+
fieldSet: {
|
|
156
|
+
_count: {
|
|
157
|
+
fields: number;
|
|
158
|
+
};
|
|
159
|
+
} | null;
|
|
160
|
+
};
|
|
161
|
+
createdBy: {
|
|
162
|
+
username: string;
|
|
163
|
+
};
|
|
164
|
+
updatedBy: {
|
|
165
|
+
username: string;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
export declare function listStepRuns(opRunId: number): Promise<StepRunWithStep[]>;
|
|
169
|
+
export declare function listStepRunsWithFields(opRunId: number): Promise<StepRunWithStepAndFields[]>;
|
|
170
|
+
export declare function getStepRunWithFields(id: number): Promise<StepRunWithStepAndFields | null>;
|
|
171
|
+
export declare function updateStepRun(id: number, completed: boolean | undefined, statusNote: string | undefined, userId: number): Promise<StepRunWithStepAndFields>;
|
|
172
|
+
//# sourceMappingURL=step-run-service.d.ts.map
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import erpDb from "../erpDb.js";
|
|
2
|
+
// --- Prisma include & result type ---
|
|
3
|
+
export const includeStepRunWithFields = {
|
|
4
|
+
step: {
|
|
5
|
+
select: {
|
|
6
|
+
seqNo: true,
|
|
7
|
+
title: true,
|
|
8
|
+
instructions: true,
|
|
9
|
+
multiSet: true,
|
|
10
|
+
fieldSet: {
|
|
11
|
+
select: {
|
|
12
|
+
fields: {
|
|
13
|
+
select: {
|
|
14
|
+
id: true,
|
|
15
|
+
seqNo: true,
|
|
16
|
+
label: true,
|
|
17
|
+
type: true,
|
|
18
|
+
isArray: true,
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
orderBy: { seqNo: "asc" },
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
fieldRecord: {
|
|
28
|
+
include: {
|
|
29
|
+
fieldValues: {
|
|
30
|
+
select: {
|
|
31
|
+
id: true,
|
|
32
|
+
fieldId: true,
|
|
33
|
+
setIndex: true,
|
|
34
|
+
value: true,
|
|
35
|
+
fieldAttachments: {
|
|
36
|
+
select: {
|
|
37
|
+
attachment: {
|
|
38
|
+
select: { publicId: true, filename: true, fileSize: true },
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
orderBy: { setIndex: "asc" },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
createdBy: { select: { username: true } },
|
|
48
|
+
updatedBy: { select: { username: true } },
|
|
49
|
+
};
|
|
50
|
+
// --- Lightweight include (step metadata only, no field values) ---
|
|
51
|
+
export const includeStepRun = {
|
|
52
|
+
step: {
|
|
53
|
+
select: {
|
|
54
|
+
seqNo: true,
|
|
55
|
+
title: true,
|
|
56
|
+
instructions: true,
|
|
57
|
+
multiSet: true,
|
|
58
|
+
fieldSet: {
|
|
59
|
+
select: {
|
|
60
|
+
_count: { select: { fields: true } },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
createdBy: { select: { username: true } },
|
|
66
|
+
updatedBy: { select: { username: true } },
|
|
67
|
+
};
|
|
68
|
+
// --- Lookups ---
|
|
69
|
+
export async function listStepRuns(opRunId) {
|
|
70
|
+
return erpDb.stepRun.findMany({
|
|
71
|
+
where: { operationRunId: opRunId },
|
|
72
|
+
include: includeStepRun,
|
|
73
|
+
orderBy: { step: { seqNo: "asc" } },
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
export async function listStepRunsWithFields(opRunId) {
|
|
77
|
+
return erpDb.stepRun.findMany({
|
|
78
|
+
where: { operationRunId: opRunId },
|
|
79
|
+
include: includeStepRunWithFields,
|
|
80
|
+
orderBy: { step: { seqNo: "asc" } },
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
export async function getStepRunWithFields(id) {
|
|
84
|
+
return erpDb.stepRun.findUnique({
|
|
85
|
+
where: { id },
|
|
86
|
+
include: includeStepRunWithFields,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
// --- Mutations ---
|
|
90
|
+
export async function updateStepRun(id, completed, statusNote, userId) {
|
|
91
|
+
if (completed !== undefined) {
|
|
92
|
+
await erpDb.stepRun.update({
|
|
93
|
+
where: { id },
|
|
94
|
+
data: {
|
|
95
|
+
completed,
|
|
96
|
+
statusNote: statusNote ?? null,
|
|
97
|
+
updatedById: userId,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return erpDb.stepRun.findUniqueOrThrow({
|
|
102
|
+
where: { id },
|
|
103
|
+
include: includeStepRunWithFields,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=step-run-service.js.map
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { StepModel } from "../generated/prisma/models/Step.js";
|
|
2
|
+
import { type WithAuditUsers } from "../route-helpers.js";
|
|
3
|
+
import type { FieldWithUsers } from "./field-service.js";
|
|
4
|
+
export declare const includeUsersAndFields: {
|
|
5
|
+
readonly fieldSet: {
|
|
6
|
+
readonly include: {
|
|
7
|
+
readonly fields: {
|
|
8
|
+
readonly include: {
|
|
9
|
+
readonly createdBy: {
|
|
10
|
+
readonly select: {
|
|
11
|
+
readonly username: true;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
readonly updatedBy: {
|
|
15
|
+
readonly select: {
|
|
16
|
+
readonly username: true;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
readonly orderBy: {
|
|
21
|
+
readonly seqNo: "asc";
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
readonly createdBy: {
|
|
27
|
+
readonly select: {
|
|
28
|
+
readonly username: true;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
readonly updatedBy: {
|
|
32
|
+
readonly select: {
|
|
33
|
+
readonly username: true;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export type StepWithUsersAndFields = StepModel & WithAuditUsers & {
|
|
38
|
+
fieldSet: {
|
|
39
|
+
fields: FieldWithUsers[];
|
|
40
|
+
} | null;
|
|
41
|
+
};
|
|
42
|
+
export declare function listSteps(operationId: number): Promise<StepWithUsersAndFields[]>;
|
|
43
|
+
export declare function getStep(operationId: number, seqNo: number): Promise<StepWithUsersAndFields | null>;
|
|
44
|
+
export declare function findExisting(operationId: number, seqNo: number): Promise<({
|
|
45
|
+
fieldSet: ({
|
|
46
|
+
fields: ({
|
|
47
|
+
createdBy: {
|
|
48
|
+
username: string;
|
|
49
|
+
};
|
|
50
|
+
updatedBy: {
|
|
51
|
+
username: string;
|
|
52
|
+
};
|
|
53
|
+
} & {
|
|
54
|
+
required: boolean;
|
|
55
|
+
createdAt: Date;
|
|
56
|
+
id: number;
|
|
57
|
+
updatedAt: Date;
|
|
58
|
+
seqNo: number;
|
|
59
|
+
type: import("../generated/prisma/enums.js").FieldType;
|
|
60
|
+
label: string;
|
|
61
|
+
isArray: boolean;
|
|
62
|
+
createdById: number;
|
|
63
|
+
updatedById: number;
|
|
64
|
+
fieldSetId: number;
|
|
65
|
+
})[];
|
|
66
|
+
} & {
|
|
67
|
+
createdAt: Date;
|
|
68
|
+
id: number;
|
|
69
|
+
createdById: number;
|
|
70
|
+
}) | null;
|
|
71
|
+
createdBy: {
|
|
72
|
+
username: string;
|
|
73
|
+
};
|
|
74
|
+
updatedBy: {
|
|
75
|
+
username: string;
|
|
76
|
+
};
|
|
77
|
+
} & {
|
|
78
|
+
title: string;
|
|
79
|
+
operationId: number;
|
|
80
|
+
createdAt: Date;
|
|
81
|
+
id: number;
|
|
82
|
+
updatedAt: Date;
|
|
83
|
+
seqNo: number;
|
|
84
|
+
instructions: string;
|
|
85
|
+
multiSet: boolean;
|
|
86
|
+
createdById: number;
|
|
87
|
+
updatedById: number;
|
|
88
|
+
fieldSetId: number | null;
|
|
89
|
+
}) | null>;
|
|
90
|
+
export declare function createSteps(operationId: number, items: Array<{
|
|
91
|
+
seqNo?: number | null;
|
|
92
|
+
title?: string | null;
|
|
93
|
+
instructions?: string | null;
|
|
94
|
+
multiSet?: boolean | null;
|
|
95
|
+
}>, userId: number): Promise<StepWithUsersAndFields[]>;
|
|
96
|
+
export declare function createStep(operationId: number, requestedSeqNo: number | undefined | null, title: string | undefined | null, instructions: string | undefined | null, multiSet: boolean | undefined | null, userId: number): Promise<StepWithUsersAndFields>;
|
|
97
|
+
export declare function updateStep(id: number, data: {
|
|
98
|
+
title?: string;
|
|
99
|
+
instructions?: string;
|
|
100
|
+
seqNo?: number;
|
|
101
|
+
multiSet?: boolean;
|
|
102
|
+
}, userId: number): Promise<StepWithUsersAndFields>;
|
|
103
|
+
export declare function deleteStep(id: number): Promise<void>;
|
|
104
|
+
//# sourceMappingURL=step-service.d.ts.map
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import erpDb from "../erpDb.js";
|
|
2
|
+
import { calcNextSeqNo, includeUsers, } from "../route-helpers.js";
|
|
3
|
+
// --- Prisma include & result type ---
|
|
4
|
+
export const includeUsersAndFields = {
|
|
5
|
+
...includeUsers,
|
|
6
|
+
fieldSet: {
|
|
7
|
+
include: {
|
|
8
|
+
fields: {
|
|
9
|
+
include: includeUsers,
|
|
10
|
+
orderBy: { seqNo: "asc" },
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
// --- Lookups ---
|
|
16
|
+
export async function listSteps(operationId) {
|
|
17
|
+
return erpDb.step.findMany({
|
|
18
|
+
where: { operationId },
|
|
19
|
+
include: includeUsersAndFields,
|
|
20
|
+
orderBy: { seqNo: "asc" },
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export async function getStep(operationId, seqNo) {
|
|
24
|
+
return erpDb.step.findFirst({
|
|
25
|
+
where: { operationId, seqNo },
|
|
26
|
+
include: includeUsersAndFields,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export async function findExisting(operationId, seqNo) {
|
|
30
|
+
return erpDb.step.findFirst({
|
|
31
|
+
where: { operationId, seqNo },
|
|
32
|
+
include: includeUsersAndFields,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
// --- Mutations ---
|
|
36
|
+
export async function createSteps(operationId, items, userId) {
|
|
37
|
+
return erpDb.$transaction(async (erpTx) => {
|
|
38
|
+
const maxSeq = await erpTx.step.findFirst({
|
|
39
|
+
where: { operationId },
|
|
40
|
+
orderBy: { seqNo: "desc" },
|
|
41
|
+
select: { seqNo: true },
|
|
42
|
+
});
|
|
43
|
+
let nextSeqNo = calcNextSeqNo(maxSeq?.seqNo ?? 0);
|
|
44
|
+
const created = [];
|
|
45
|
+
for (const item of items) {
|
|
46
|
+
const seqNo = item.seqNo ?? nextSeqNo;
|
|
47
|
+
const step = await erpTx.step.create({
|
|
48
|
+
data: {
|
|
49
|
+
operationId,
|
|
50
|
+
seqNo,
|
|
51
|
+
title: item.title ?? "",
|
|
52
|
+
instructions: item.instructions ?? "",
|
|
53
|
+
multiSet: item.multiSet ?? false,
|
|
54
|
+
createdById: userId,
|
|
55
|
+
updatedById: userId,
|
|
56
|
+
},
|
|
57
|
+
include: includeUsersAndFields,
|
|
58
|
+
});
|
|
59
|
+
created.push(step);
|
|
60
|
+
if (!item.seqNo) {
|
|
61
|
+
nextSeqNo = calcNextSeqNo(seqNo);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return created;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export async function createStep(operationId, requestedSeqNo, title, instructions, multiSet, userId) {
|
|
68
|
+
const [step] = await createSteps(operationId, [{ seqNo: requestedSeqNo, title, instructions, multiSet }], userId);
|
|
69
|
+
return step;
|
|
70
|
+
}
|
|
71
|
+
export async function updateStep(id, data, userId) {
|
|
72
|
+
return erpDb.step.update({
|
|
73
|
+
where: { id },
|
|
74
|
+
data: {
|
|
75
|
+
...(data.title !== undefined ? { title: data.title } : {}),
|
|
76
|
+
...(data.instructions !== undefined
|
|
77
|
+
? { instructions: data.instructions }
|
|
78
|
+
: {}),
|
|
79
|
+
...(data.seqNo !== undefined ? { seqNo: data.seqNo } : {}),
|
|
80
|
+
...(data.multiSet !== undefined ? { multiSet: data.multiSet } : {}),
|
|
81
|
+
updatedById: userId,
|
|
82
|
+
},
|
|
83
|
+
include: includeUsersAndFields,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
export async function deleteStep(id) {
|
|
87
|
+
await erpDb.step.delete({ where: { id } });
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=step-service.js.map
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { ErpPermission } from "@naisys/erp-shared";
|
|
2
|
+
export declare const includePermissions: {
|
|
3
|
+
readonly permissions: true;
|
|
4
|
+
};
|
|
5
|
+
export type UserWithPermissions = {
|
|
6
|
+
id: number;
|
|
7
|
+
username: string;
|
|
8
|
+
isAgent: boolean;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
updatedAt: Date;
|
|
11
|
+
permissions: {
|
|
12
|
+
permission: string;
|
|
13
|
+
grantedAt: Date;
|
|
14
|
+
grantedBy: number | null;
|
|
15
|
+
}[];
|
|
16
|
+
};
|
|
17
|
+
export declare function listUsers(options: {
|
|
18
|
+
page: number;
|
|
19
|
+
pageSize: number;
|
|
20
|
+
search?: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
items: ({
|
|
23
|
+
permissions: {
|
|
24
|
+
id: number;
|
|
25
|
+
userId: number;
|
|
26
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
27
|
+
grantedAt: Date;
|
|
28
|
+
grantedBy: number | null;
|
|
29
|
+
}[];
|
|
30
|
+
} & {
|
|
31
|
+
createdAt: Date;
|
|
32
|
+
id: number;
|
|
33
|
+
uuid: string;
|
|
34
|
+
username: string;
|
|
35
|
+
apiKey: string | null;
|
|
36
|
+
passwordHash: string;
|
|
37
|
+
isAgent: boolean;
|
|
38
|
+
updatedAt: Date;
|
|
39
|
+
deletedAt: Date | null;
|
|
40
|
+
})[];
|
|
41
|
+
total: number;
|
|
42
|
+
pageSize: number;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function getUserByUsername(username: string): Promise<({
|
|
45
|
+
permissions: {
|
|
46
|
+
id: number;
|
|
47
|
+
userId: number;
|
|
48
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
49
|
+
grantedAt: Date;
|
|
50
|
+
grantedBy: number | null;
|
|
51
|
+
}[];
|
|
52
|
+
} & {
|
|
53
|
+
createdAt: Date;
|
|
54
|
+
id: number;
|
|
55
|
+
uuid: string;
|
|
56
|
+
username: string;
|
|
57
|
+
apiKey: string | null;
|
|
58
|
+
passwordHash: string;
|
|
59
|
+
isAgent: boolean;
|
|
60
|
+
updatedAt: Date;
|
|
61
|
+
deletedAt: Date | null;
|
|
62
|
+
}) | null>;
|
|
63
|
+
export declare function getUserById(id: number): Promise<({
|
|
64
|
+
permissions: {
|
|
65
|
+
id: number;
|
|
66
|
+
userId: number;
|
|
67
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
68
|
+
grantedAt: Date;
|
|
69
|
+
grantedBy: number | null;
|
|
70
|
+
}[];
|
|
71
|
+
} & {
|
|
72
|
+
createdAt: Date;
|
|
73
|
+
id: number;
|
|
74
|
+
uuid: string;
|
|
75
|
+
username: string;
|
|
76
|
+
apiKey: string | null;
|
|
77
|
+
passwordHash: string;
|
|
78
|
+
isAgent: boolean;
|
|
79
|
+
updatedAt: Date;
|
|
80
|
+
deletedAt: Date | null;
|
|
81
|
+
}) | null>;
|
|
82
|
+
export declare function getUserApiKey(id: number): Promise<string | null>;
|
|
83
|
+
export declare function getUserByUuid(uuid: string): Promise<({
|
|
84
|
+
permissions: {
|
|
85
|
+
id: number;
|
|
86
|
+
userId: number;
|
|
87
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
88
|
+
grantedAt: Date;
|
|
89
|
+
grantedBy: number | null;
|
|
90
|
+
}[];
|
|
91
|
+
} & {
|
|
92
|
+
createdAt: Date;
|
|
93
|
+
id: number;
|
|
94
|
+
uuid: string;
|
|
95
|
+
username: string;
|
|
96
|
+
apiKey: string | null;
|
|
97
|
+
passwordHash: string;
|
|
98
|
+
isAgent: boolean;
|
|
99
|
+
updatedAt: Date;
|
|
100
|
+
deletedAt: Date | null;
|
|
101
|
+
}) | null>;
|
|
102
|
+
export declare function createUserForAgent(username: string, uuid: string): Promise<{
|
|
103
|
+
permissions: {
|
|
104
|
+
id: number;
|
|
105
|
+
userId: number;
|
|
106
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
107
|
+
grantedAt: Date;
|
|
108
|
+
grantedBy: number | null;
|
|
109
|
+
}[];
|
|
110
|
+
} & {
|
|
111
|
+
createdAt: Date;
|
|
112
|
+
id: number;
|
|
113
|
+
uuid: string;
|
|
114
|
+
username: string;
|
|
115
|
+
apiKey: string | null;
|
|
116
|
+
passwordHash: string;
|
|
117
|
+
isAgent: boolean;
|
|
118
|
+
updatedAt: Date;
|
|
119
|
+
deletedAt: Date | null;
|
|
120
|
+
}>;
|
|
121
|
+
export declare function createUserWithPassword(data: {
|
|
122
|
+
username: string;
|
|
123
|
+
password: string;
|
|
124
|
+
}): Promise<{
|
|
125
|
+
permissions: {
|
|
126
|
+
id: number;
|
|
127
|
+
userId: number;
|
|
128
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
129
|
+
grantedAt: Date;
|
|
130
|
+
grantedBy: number | null;
|
|
131
|
+
}[];
|
|
132
|
+
} & {
|
|
133
|
+
createdAt: Date;
|
|
134
|
+
id: number;
|
|
135
|
+
uuid: string;
|
|
136
|
+
username: string;
|
|
137
|
+
apiKey: string | null;
|
|
138
|
+
passwordHash: string;
|
|
139
|
+
isAgent: boolean;
|
|
140
|
+
updatedAt: Date;
|
|
141
|
+
deletedAt: Date | null;
|
|
142
|
+
}>;
|
|
143
|
+
export declare function updateUser(id: number, data: {
|
|
144
|
+
username?: string;
|
|
145
|
+
password?: string;
|
|
146
|
+
}): Promise<{
|
|
147
|
+
permissions: {
|
|
148
|
+
id: number;
|
|
149
|
+
userId: number;
|
|
150
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
151
|
+
grantedAt: Date;
|
|
152
|
+
grantedBy: number | null;
|
|
153
|
+
}[];
|
|
154
|
+
} & {
|
|
155
|
+
createdAt: Date;
|
|
156
|
+
id: number;
|
|
157
|
+
uuid: string;
|
|
158
|
+
username: string;
|
|
159
|
+
apiKey: string | null;
|
|
160
|
+
passwordHash: string;
|
|
161
|
+
isAgent: boolean;
|
|
162
|
+
updatedAt: Date;
|
|
163
|
+
deletedAt: Date | null;
|
|
164
|
+
}>;
|
|
165
|
+
export declare function deleteUser(id: number): Promise<{
|
|
166
|
+
createdAt: Date;
|
|
167
|
+
id: number;
|
|
168
|
+
uuid: string;
|
|
169
|
+
username: string;
|
|
170
|
+
apiKey: string | null;
|
|
171
|
+
passwordHash: string;
|
|
172
|
+
isAgent: boolean;
|
|
173
|
+
updatedAt: Date;
|
|
174
|
+
deletedAt: Date | null;
|
|
175
|
+
}>;
|
|
176
|
+
export declare function grantPermission(userId: number, permission: ErpPermission, grantedBy: number): Promise<{
|
|
177
|
+
id: number;
|
|
178
|
+
userId: number;
|
|
179
|
+
permission: import("../generated/prisma/enums.js").ErpPermission;
|
|
180
|
+
grantedAt: Date;
|
|
181
|
+
grantedBy: number | null;
|
|
182
|
+
}>;
|
|
183
|
+
export declare function revokePermission(userId: number, permission: ErpPermission): Promise<import("../generated/prisma/internal/prismaNamespace.js").BatchPayload>;
|
|
184
|
+
export declare function rotateUserApiKey(id: number): Promise<string>;
|
|
185
|
+
//# sourceMappingURL=user-service.d.ts.map
|