@sekolaos/shared-schema 1.0.2 → 1.1.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/cjs/academic/academic-year.schema.js +8 -1
- package/dist/cjs/academic/academic-year.schema.js.map +1 -1
- package/dist/cjs/academic/class-room.schema.js +10 -3
- package/dist/cjs/academic/class-room.schema.js.map +1 -1
- package/dist/cjs/academic/subject.schema.js +11 -2
- package/dist/cjs/academic/subject.schema.js.map +1 -1
- package/dist/cjs/academic/teaching-schedule.schema.js +10 -1
- package/dist/cjs/academic/teaching-schedule.schema.js.map +1 -1
- package/dist/cjs/attendance/attendance-class.schema.js +9 -1
- package/dist/cjs/attendance/attendance-class.schema.js.map +1 -1
- package/dist/cjs/attendance/attendance-kiosk.schema.js +48 -1
- package/dist/cjs/attendance/attendance-kiosk.schema.js.map +1 -1
- package/dist/cjs/attendance/barcode-rolling.schema.js +27 -1
- package/dist/cjs/attendance/barcode-rolling.schema.js.map +1 -1
- package/dist/cjs/attendance/picket-assignment.schema.js +7 -1
- package/dist/cjs/attendance/picket-assignment.schema.js.map +1 -1
- package/dist/cjs/common/common.schema.js +15 -1
- package/dist/cjs/common/common.schema.js.map +1 -1
- package/dist/cjs/tenant/tenant.schema.js +37 -1
- package/dist/cjs/tenant/tenant.schema.js.map +1 -1
- package/dist/cjs/user/student.schema.js +14 -1
- package/dist/cjs/user/student.schema.js.map +1 -1
- package/dist/cjs/user/user.schema.js +10 -1
- package/dist/cjs/user/user.schema.js.map +1 -1
- package/dist/esm/academic/academic-year.schema.js +8 -1
- package/dist/esm/academic/academic-year.schema.js.map +1 -1
- package/dist/esm/academic/class-room.schema.js +10 -3
- package/dist/esm/academic/class-room.schema.js.map +1 -1
- package/dist/esm/academic/subject.schema.js +11 -2
- package/dist/esm/academic/subject.schema.js.map +1 -1
- package/dist/esm/academic/teaching-schedule.schema.js +9 -0
- package/dist/esm/academic/teaching-schedule.schema.js.map +1 -1
- package/dist/esm/attendance/attendance-class.schema.js +8 -0
- package/dist/esm/attendance/attendance-class.schema.js.map +1 -1
- package/dist/esm/attendance/attendance-kiosk.schema.js +48 -1
- package/dist/esm/attendance/attendance-kiosk.schema.js.map +1 -1
- package/dist/esm/attendance/barcode-rolling.schema.js +26 -0
- package/dist/esm/attendance/barcode-rolling.schema.js.map +1 -1
- package/dist/esm/attendance/picket-assignment.schema.js +7 -1
- package/dist/esm/attendance/picket-assignment.schema.js.map +1 -1
- package/dist/esm/common/common.schema.js +14 -0
- package/dist/esm/common/common.schema.js.map +1 -1
- package/dist/esm/tenant/tenant.schema.js +36 -0
- package/dist/esm/tenant/tenant.schema.js.map +1 -1
- package/dist/esm/user/student.schema.js +14 -1
- package/dist/esm/user/student.schema.js.map +1 -1
- package/dist/esm/user/user.schema.js +10 -1
- package/dist/esm/user/user.schema.js.map +1 -1
- package/dist/types/academic/academic-year.schema.d.ts +29 -4
- package/dist/types/academic/class-room.schema.d.ts +37 -12
- package/dist/types/academic/subject.schema.d.ts +25 -2
- package/dist/types/academic/teaching-schedule.schema.d.ts +25 -0
- package/dist/types/attendance/attendance-class.schema.d.ts +23 -0
- package/dist/types/attendance/attendance-kiosk.schema.d.ts +281 -0
- package/dist/types/attendance/barcode-rolling.schema.d.ts +75 -0
- package/dist/types/attendance/picket-assignment.schema.d.ts +17 -0
- package/dist/types/auth/role.schema.d.ts +4 -4
- package/dist/types/common/common.schema.d.ts +12 -0
- package/dist/types/tenant/attendance-shift.schema.d.ts +8 -8
- package/dist/types/tenant/tenant.schema.d.ts +79 -5
- package/dist/types/user/student.schema.d.ts +47 -0
- package/dist/types/user/user.schema.d.ts +33 -2
- package/package.json +1 -1
|
@@ -51,5 +51,28 @@ export declare const updateClassAttendanceRequestSchema: z.ZodObject<{
|
|
|
51
51
|
notes?: string | undefined;
|
|
52
52
|
}[];
|
|
53
53
|
}>;
|
|
54
|
+
export declare const classUpdateAttendanceResultSchema: z.ZodObject<{
|
|
55
|
+
teachingScheduleId: z.ZodString;
|
|
56
|
+
classroomId: z.ZodString;
|
|
57
|
+
date: z.ZodString;
|
|
58
|
+
totalReceived: z.ZodNumber;
|
|
59
|
+
totalCreated: z.ZodNumber;
|
|
60
|
+
totalUpdated: z.ZodNumber;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
date: string;
|
|
63
|
+
classroomId: string;
|
|
64
|
+
totalReceived: number;
|
|
65
|
+
teachingScheduleId: string;
|
|
66
|
+
totalCreated: number;
|
|
67
|
+
totalUpdated: number;
|
|
68
|
+
}, {
|
|
69
|
+
date: string;
|
|
70
|
+
classroomId: string;
|
|
71
|
+
totalReceived: number;
|
|
72
|
+
teachingScheduleId: string;
|
|
73
|
+
totalCreated: number;
|
|
74
|
+
totalUpdated: number;
|
|
75
|
+
}>;
|
|
54
76
|
export type ClassAttendanceUpdateItem = z.infer<typeof classAttendanceUpdateItemSchema>;
|
|
55
77
|
export type UpdateClassAttendanceRequest = z.infer<typeof updateClassAttendanceRequestSchema>;
|
|
78
|
+
export type ClassUpdateAttendanceResult = z.infer<typeof classUpdateAttendanceResultSchema>;
|
|
@@ -106,3 +106,284 @@ export type KioskScanItemInput = z.input<typeof kioskScanItemSchema>;
|
|
|
106
106
|
export type BatchSyncAttendanceRequest = z.infer<typeof batchSyncAttendanceRequestSchema>;
|
|
107
107
|
export type BatchSyncAttendanceRequestInput = z.input<typeof batchSyncAttendanceRequestSchema>;
|
|
108
108
|
export type BatchSyncAttendanceResponse = z.infer<typeof batchSyncAttendanceResponseSchema>;
|
|
109
|
+
/** Query `GET /attendance/history`: batas tanggal inklusif dalam zona waktu tenant. */
|
|
110
|
+
export declare const attendanceHistoryQuerySchema: z.ZodEffects<z.ZodObject<{
|
|
111
|
+
from: z.ZodString;
|
|
112
|
+
to: z.ZodString;
|
|
113
|
+
classroomId: z.ZodOptional<z.ZodString>;
|
|
114
|
+
studentId: z.ZodOptional<z.ZodString>;
|
|
115
|
+
status: z.ZodOptional<z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>>;
|
|
116
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
117
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
118
|
+
}, "strip", z.ZodTypeAny, {
|
|
119
|
+
page: number;
|
|
120
|
+
limit: number;
|
|
121
|
+
from: string;
|
|
122
|
+
to: string;
|
|
123
|
+
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
124
|
+
classroomId?: string | undefined;
|
|
125
|
+
studentId?: string | undefined;
|
|
126
|
+
}, {
|
|
127
|
+
from: string;
|
|
128
|
+
to: string;
|
|
129
|
+
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
130
|
+
page?: number | undefined;
|
|
131
|
+
limit?: number | undefined;
|
|
132
|
+
classroomId?: string | undefined;
|
|
133
|
+
studentId?: string | undefined;
|
|
134
|
+
}>, {
|
|
135
|
+
page: number;
|
|
136
|
+
limit: number;
|
|
137
|
+
from: string;
|
|
138
|
+
to: string;
|
|
139
|
+
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
140
|
+
classroomId?: string | undefined;
|
|
141
|
+
studentId?: string | undefined;
|
|
142
|
+
}, {
|
|
143
|
+
from: string;
|
|
144
|
+
to: string;
|
|
145
|
+
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
146
|
+
page?: number | undefined;
|
|
147
|
+
limit?: number | undefined;
|
|
148
|
+
classroomId?: string | undefined;
|
|
149
|
+
studentId?: string | undefined;
|
|
150
|
+
}>;
|
|
151
|
+
export declare const attendanceHistoryItemSchema: z.ZodObject<{
|
|
152
|
+
id: z.ZodString;
|
|
153
|
+
clientUuid: z.ZodString;
|
|
154
|
+
barcodeScanned: z.ZodNullable<z.ZodString>;
|
|
155
|
+
status: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
|
|
156
|
+
source: z.ZodEnum<["KIOSK", "CLASS"]>;
|
|
157
|
+
scannedAt: z.ZodString;
|
|
158
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
159
|
+
student: z.ZodObject<{
|
|
160
|
+
id: z.ZodString;
|
|
161
|
+
nis: z.ZodString;
|
|
162
|
+
fullName: z.ZodString;
|
|
163
|
+
gender: z.ZodEnum<["L", "P"]>;
|
|
164
|
+
photoUrl: z.ZodNullable<z.ZodString>;
|
|
165
|
+
classroomId: z.ZodNullable<z.ZodString>;
|
|
166
|
+
}, "strip", z.ZodTypeAny, {
|
|
167
|
+
id: string;
|
|
168
|
+
classroomId: string | null;
|
|
169
|
+
fullName: string;
|
|
170
|
+
nis: string;
|
|
171
|
+
gender: "L" | "P";
|
|
172
|
+
photoUrl: string | null;
|
|
173
|
+
}, {
|
|
174
|
+
id: string;
|
|
175
|
+
classroomId: string | null;
|
|
176
|
+
fullName: string;
|
|
177
|
+
nis: string;
|
|
178
|
+
gender: "L" | "P";
|
|
179
|
+
photoUrl: string | null;
|
|
180
|
+
}>;
|
|
181
|
+
classroom: z.ZodNullable<z.ZodObject<{
|
|
182
|
+
id: z.ZodString;
|
|
183
|
+
name: z.ZodString;
|
|
184
|
+
}, "strip", z.ZodTypeAny, {
|
|
185
|
+
id: string;
|
|
186
|
+
name: string;
|
|
187
|
+
}, {
|
|
188
|
+
id: string;
|
|
189
|
+
name: string;
|
|
190
|
+
}>>;
|
|
191
|
+
}, "strip", z.ZodTypeAny, {
|
|
192
|
+
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
193
|
+
id: string;
|
|
194
|
+
clientUuid: string;
|
|
195
|
+
barcodeScanned: string | null;
|
|
196
|
+
scannedAt: string;
|
|
197
|
+
notes: string | null;
|
|
198
|
+
source: "KIOSK" | "CLASS";
|
|
199
|
+
student: {
|
|
200
|
+
id: string;
|
|
201
|
+
classroomId: string | null;
|
|
202
|
+
fullName: string;
|
|
203
|
+
nis: string;
|
|
204
|
+
gender: "L" | "P";
|
|
205
|
+
photoUrl: string | null;
|
|
206
|
+
};
|
|
207
|
+
classroom: {
|
|
208
|
+
id: string;
|
|
209
|
+
name: string;
|
|
210
|
+
} | null;
|
|
211
|
+
}, {
|
|
212
|
+
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
213
|
+
id: string;
|
|
214
|
+
clientUuid: string;
|
|
215
|
+
barcodeScanned: string | null;
|
|
216
|
+
scannedAt: string;
|
|
217
|
+
notes: string | null;
|
|
218
|
+
source: "KIOSK" | "CLASS";
|
|
219
|
+
student: {
|
|
220
|
+
id: string;
|
|
221
|
+
classroomId: string | null;
|
|
222
|
+
fullName: string;
|
|
223
|
+
nis: string;
|
|
224
|
+
gender: "L" | "P";
|
|
225
|
+
photoUrl: string | null;
|
|
226
|
+
};
|
|
227
|
+
classroom: {
|
|
228
|
+
id: string;
|
|
229
|
+
name: string;
|
|
230
|
+
} | null;
|
|
231
|
+
}>;
|
|
232
|
+
export declare const attendanceHistoryResultSchema: z.ZodObject<{
|
|
233
|
+
items: z.ZodArray<z.ZodObject<{
|
|
234
|
+
id: z.ZodString;
|
|
235
|
+
clientUuid: z.ZodString;
|
|
236
|
+
barcodeScanned: z.ZodNullable<z.ZodString>;
|
|
237
|
+
status: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
|
|
238
|
+
source: z.ZodEnum<["KIOSK", "CLASS"]>;
|
|
239
|
+
scannedAt: z.ZodString;
|
|
240
|
+
notes: z.ZodNullable<z.ZodString>;
|
|
241
|
+
student: z.ZodObject<{
|
|
242
|
+
id: z.ZodString;
|
|
243
|
+
nis: z.ZodString;
|
|
244
|
+
fullName: z.ZodString;
|
|
245
|
+
gender: z.ZodEnum<["L", "P"]>;
|
|
246
|
+
photoUrl: z.ZodNullable<z.ZodString>;
|
|
247
|
+
classroomId: z.ZodNullable<z.ZodString>;
|
|
248
|
+
}, "strip", z.ZodTypeAny, {
|
|
249
|
+
id: string;
|
|
250
|
+
classroomId: string | null;
|
|
251
|
+
fullName: string;
|
|
252
|
+
nis: string;
|
|
253
|
+
gender: "L" | "P";
|
|
254
|
+
photoUrl: string | null;
|
|
255
|
+
}, {
|
|
256
|
+
id: string;
|
|
257
|
+
classroomId: string | null;
|
|
258
|
+
fullName: string;
|
|
259
|
+
nis: string;
|
|
260
|
+
gender: "L" | "P";
|
|
261
|
+
photoUrl: string | null;
|
|
262
|
+
}>;
|
|
263
|
+
classroom: z.ZodNullable<z.ZodObject<{
|
|
264
|
+
id: z.ZodString;
|
|
265
|
+
name: z.ZodString;
|
|
266
|
+
}, "strip", z.ZodTypeAny, {
|
|
267
|
+
id: string;
|
|
268
|
+
name: string;
|
|
269
|
+
}, {
|
|
270
|
+
id: string;
|
|
271
|
+
name: string;
|
|
272
|
+
}>>;
|
|
273
|
+
}, "strip", z.ZodTypeAny, {
|
|
274
|
+
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
275
|
+
id: string;
|
|
276
|
+
clientUuid: string;
|
|
277
|
+
barcodeScanned: string | null;
|
|
278
|
+
scannedAt: string;
|
|
279
|
+
notes: string | null;
|
|
280
|
+
source: "KIOSK" | "CLASS";
|
|
281
|
+
student: {
|
|
282
|
+
id: string;
|
|
283
|
+
classroomId: string | null;
|
|
284
|
+
fullName: string;
|
|
285
|
+
nis: string;
|
|
286
|
+
gender: "L" | "P";
|
|
287
|
+
photoUrl: string | null;
|
|
288
|
+
};
|
|
289
|
+
classroom: {
|
|
290
|
+
id: string;
|
|
291
|
+
name: string;
|
|
292
|
+
} | null;
|
|
293
|
+
}, {
|
|
294
|
+
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
295
|
+
id: string;
|
|
296
|
+
clientUuid: string;
|
|
297
|
+
barcodeScanned: string | null;
|
|
298
|
+
scannedAt: string;
|
|
299
|
+
notes: string | null;
|
|
300
|
+
source: "KIOSK" | "CLASS";
|
|
301
|
+
student: {
|
|
302
|
+
id: string;
|
|
303
|
+
classroomId: string | null;
|
|
304
|
+
fullName: string;
|
|
305
|
+
nis: string;
|
|
306
|
+
gender: "L" | "P";
|
|
307
|
+
photoUrl: string | null;
|
|
308
|
+
};
|
|
309
|
+
classroom: {
|
|
310
|
+
id: string;
|
|
311
|
+
name: string;
|
|
312
|
+
} | null;
|
|
313
|
+
}>, "many">;
|
|
314
|
+
meta: z.ZodObject<{
|
|
315
|
+
currentPage: z.ZodNumber;
|
|
316
|
+
pageSize: z.ZodNumber;
|
|
317
|
+
totalItems: z.ZodNumber;
|
|
318
|
+
totalPages: z.ZodNumber;
|
|
319
|
+
}, "strip", z.ZodTypeAny, {
|
|
320
|
+
currentPage: number;
|
|
321
|
+
pageSize: number;
|
|
322
|
+
totalItems: number;
|
|
323
|
+
totalPages: number;
|
|
324
|
+
}, {
|
|
325
|
+
currentPage: number;
|
|
326
|
+
pageSize: number;
|
|
327
|
+
totalItems: number;
|
|
328
|
+
totalPages: number;
|
|
329
|
+
}>;
|
|
330
|
+
}, "strip", z.ZodTypeAny, {
|
|
331
|
+
items: {
|
|
332
|
+
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
333
|
+
id: string;
|
|
334
|
+
clientUuid: string;
|
|
335
|
+
barcodeScanned: string | null;
|
|
336
|
+
scannedAt: string;
|
|
337
|
+
notes: string | null;
|
|
338
|
+
source: "KIOSK" | "CLASS";
|
|
339
|
+
student: {
|
|
340
|
+
id: string;
|
|
341
|
+
classroomId: string | null;
|
|
342
|
+
fullName: string;
|
|
343
|
+
nis: string;
|
|
344
|
+
gender: "L" | "P";
|
|
345
|
+
photoUrl: string | null;
|
|
346
|
+
};
|
|
347
|
+
classroom: {
|
|
348
|
+
id: string;
|
|
349
|
+
name: string;
|
|
350
|
+
} | null;
|
|
351
|
+
}[];
|
|
352
|
+
meta: {
|
|
353
|
+
currentPage: number;
|
|
354
|
+
pageSize: number;
|
|
355
|
+
totalItems: number;
|
|
356
|
+
totalPages: number;
|
|
357
|
+
};
|
|
358
|
+
}, {
|
|
359
|
+
items: {
|
|
360
|
+
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
361
|
+
id: string;
|
|
362
|
+
clientUuid: string;
|
|
363
|
+
barcodeScanned: string | null;
|
|
364
|
+
scannedAt: string;
|
|
365
|
+
notes: string | null;
|
|
366
|
+
source: "KIOSK" | "CLASS";
|
|
367
|
+
student: {
|
|
368
|
+
id: string;
|
|
369
|
+
classroomId: string | null;
|
|
370
|
+
fullName: string;
|
|
371
|
+
nis: string;
|
|
372
|
+
gender: "L" | "P";
|
|
373
|
+
photoUrl: string | null;
|
|
374
|
+
};
|
|
375
|
+
classroom: {
|
|
376
|
+
id: string;
|
|
377
|
+
name: string;
|
|
378
|
+
} | null;
|
|
379
|
+
}[];
|
|
380
|
+
meta: {
|
|
381
|
+
currentPage: number;
|
|
382
|
+
pageSize: number;
|
|
383
|
+
totalItems: number;
|
|
384
|
+
totalPages: number;
|
|
385
|
+
};
|
|
386
|
+
}>;
|
|
387
|
+
export type AttendanceHistoryQuery = z.infer<typeof attendanceHistoryQuerySchema>;
|
|
388
|
+
export type AttendanceHistoryItem = z.infer<typeof attendanceHistoryItemSchema>;
|
|
389
|
+
export type AttendanceHistoryResult = z.infer<typeof attendanceHistoryResultSchema>;
|
|
@@ -33,3 +33,78 @@ export declare const teacherScanDynamicBarcodeRequestSchema: z.ZodObject<{
|
|
|
33
33
|
}>;
|
|
34
34
|
export type RollingBarcodePayload = z.infer<typeof rollingBarcodePayloadSchema>;
|
|
35
35
|
export type TeacherScanDynamicBarcodeRequest = z.infer<typeof teacherScanDynamicBarcodeRequestSchema>;
|
|
36
|
+
export declare const dynamicBarcodeStreamQuerySchema: z.ZodObject<{
|
|
37
|
+
format: z.ZodDefault<z.ZodEnum<["json", "text"]>>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
format: "json" | "text";
|
|
40
|
+
}, {
|
|
41
|
+
format?: "json" | "text" | undefined;
|
|
42
|
+
}>;
|
|
43
|
+
export declare const dynamicBarcodeStreamResultSchema: z.ZodObject<{
|
|
44
|
+
token: z.ZodString;
|
|
45
|
+
tenantId: z.ZodString;
|
|
46
|
+
windowSeconds: z.ZodNumber;
|
|
47
|
+
windowIndex: z.ZodNumber;
|
|
48
|
+
generatedAt: z.ZodString;
|
|
49
|
+
expiresAt: z.ZodString;
|
|
50
|
+
expiresAtEpoch: z.ZodNumber;
|
|
51
|
+
remainingSeconds: z.ZodNumber;
|
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
|
53
|
+
tenantId: string;
|
|
54
|
+
expiresAt: string;
|
|
55
|
+
token: string;
|
|
56
|
+
windowSeconds: number;
|
|
57
|
+
windowIndex: number;
|
|
58
|
+
generatedAt: string;
|
|
59
|
+
expiresAtEpoch: number;
|
|
60
|
+
remainingSeconds: number;
|
|
61
|
+
}, {
|
|
62
|
+
tenantId: string;
|
|
63
|
+
expiresAt: string;
|
|
64
|
+
token: string;
|
|
65
|
+
windowSeconds: number;
|
|
66
|
+
windowIndex: number;
|
|
67
|
+
generatedAt: string;
|
|
68
|
+
expiresAtEpoch: number;
|
|
69
|
+
remainingSeconds: number;
|
|
70
|
+
}>;
|
|
71
|
+
export declare const dynamicBarcodeVerifyResultSchema: z.ZodObject<{
|
|
72
|
+
valid: z.ZodLiteral<true>;
|
|
73
|
+
tenantId: z.ZodString;
|
|
74
|
+
teacherUserId: z.ZodString;
|
|
75
|
+
teacherName: z.ZodOptional<z.ZodString>;
|
|
76
|
+
method: z.ZodString;
|
|
77
|
+
windowIndex: z.ZodNumber;
|
|
78
|
+
windowSeconds: z.ZodNumber;
|
|
79
|
+
scannedAt: z.ZodString;
|
|
80
|
+
attendanceLogId: z.ZodString;
|
|
81
|
+
picketAssignmentId: z.ZodOptional<z.ZodString>;
|
|
82
|
+
picketLocation: z.ZodOptional<z.ZodString>;
|
|
83
|
+
}, "strip", z.ZodTypeAny, {
|
|
84
|
+
valid: true;
|
|
85
|
+
tenantId: string;
|
|
86
|
+
teacherUserId: string;
|
|
87
|
+
scannedAt: string;
|
|
88
|
+
windowSeconds: number;
|
|
89
|
+
windowIndex: number;
|
|
90
|
+
method: string;
|
|
91
|
+
attendanceLogId: string;
|
|
92
|
+
teacherName?: string | undefined;
|
|
93
|
+
picketAssignmentId?: string | undefined;
|
|
94
|
+
picketLocation?: string | undefined;
|
|
95
|
+
}, {
|
|
96
|
+
valid: true;
|
|
97
|
+
tenantId: string;
|
|
98
|
+
teacherUserId: string;
|
|
99
|
+
scannedAt: string;
|
|
100
|
+
windowSeconds: number;
|
|
101
|
+
windowIndex: number;
|
|
102
|
+
method: string;
|
|
103
|
+
attendanceLogId: string;
|
|
104
|
+
teacherName?: string | undefined;
|
|
105
|
+
picketAssignmentId?: string | undefined;
|
|
106
|
+
picketLocation?: string | undefined;
|
|
107
|
+
}>;
|
|
108
|
+
export type DynamicBarcodeStreamQuery = z.infer<typeof dynamicBarcodeStreamQuerySchema>;
|
|
109
|
+
export type DynamicBarcodeStreamResult = z.infer<typeof dynamicBarcodeStreamResultSchema>;
|
|
110
|
+
export type DynamicBarcodeVerifyResult = z.infer<typeof dynamicBarcodeVerifyResultSchema>;
|
|
@@ -48,6 +48,23 @@ export declare const createPicketAssignmentSchema: z.ZodObject<Pick<{
|
|
|
48
48
|
dayOfWeek: "SENIN" | "SELASA" | "RABU" | "KAMIS" | "JUMAT" | "SABTU";
|
|
49
49
|
location?: string | undefined;
|
|
50
50
|
}>;
|
|
51
|
+
export declare const picketScheduleListQuerySchema: z.ZodObject<{
|
|
52
|
+
academicYearId: z.ZodOptional<z.ZodString>;
|
|
53
|
+
teacherUserId: z.ZodOptional<z.ZodString>;
|
|
54
|
+
dayOfWeek: z.ZodOptional<z.ZodEnum<["SENIN", "SELASA", "RABU", "KAMIS", "JUMAT", "SABTU"]>>;
|
|
55
|
+
isActive: z.ZodEffects<z.ZodOptional<z.ZodEnum<["true", "false"]>>, boolean | undefined, "true" | "false" | undefined>;
|
|
56
|
+
}, "strip", z.ZodTypeAny, {
|
|
57
|
+
academicYearId?: string | undefined;
|
|
58
|
+
isActive?: boolean | undefined;
|
|
59
|
+
teacherUserId?: string | undefined;
|
|
60
|
+
dayOfWeek?: "SENIN" | "SELASA" | "RABU" | "KAMIS" | "JUMAT" | "SABTU" | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
academicYearId?: string | undefined;
|
|
63
|
+
isActive?: "true" | "false" | undefined;
|
|
64
|
+
teacherUserId?: string | undefined;
|
|
65
|
+
dayOfWeek?: "SENIN" | "SELASA" | "RABU" | "KAMIS" | "JUMAT" | "SABTU" | undefined;
|
|
66
|
+
}>;
|
|
51
67
|
export type PicketAssignment = z.infer<typeof picketAssignmentSchema>;
|
|
52
68
|
export type CreatePicketAssignmentInput = z.infer<typeof createPicketAssignmentSchema>;
|
|
53
69
|
export type CreatePicketAssignmentInputSchema = z.input<typeof createPicketAssignmentSchema>;
|
|
70
|
+
export type PicketScheduleListQuery = z.infer<typeof picketScheduleListQuerySchema>;
|
|
@@ -8,15 +8,15 @@ export declare const roleSchema: z.ZodObject<{
|
|
|
8
8
|
permissions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
|
|
9
9
|
}, "strip", z.ZodTypeAny, {
|
|
10
10
|
id: string;
|
|
11
|
-
slug: string;
|
|
12
|
-
name: string;
|
|
13
11
|
tenantId: string | null;
|
|
12
|
+
name: string;
|
|
13
|
+
slug: string;
|
|
14
14
|
permissions: Record<string, string[]>;
|
|
15
15
|
}, {
|
|
16
16
|
id: string;
|
|
17
|
-
slug: string;
|
|
18
|
-
name: string;
|
|
19
17
|
tenantId: string | null;
|
|
18
|
+
name: string;
|
|
19
|
+
slug: string;
|
|
20
20
|
permissions: Record<string, string[]>;
|
|
21
21
|
}>;
|
|
22
22
|
export declare const userRolePivotSchema: z.ZodObject<{
|
|
@@ -3,6 +3,18 @@ export declare const uuidSchema: z.ZodString;
|
|
|
3
3
|
export declare const timestampSchema: z.ZodString;
|
|
4
4
|
export declare const dateStringSchema: z.ZodString;
|
|
5
5
|
export declare const timeStringSchema: z.ZodString;
|
|
6
|
+
/**
|
|
7
|
+
* Query string `?isActive=true|false` yang dikoersi menjadi boolean,
|
|
8
|
+
* kompatibel dengan Express (`req.query` berisi string).
|
|
9
|
+
*/
|
|
10
|
+
export declare const booleanQuerySchema: z.ZodEffects<z.ZodOptional<z.ZodEnum<["true", "false"]>>, boolean | undefined, "true" | "false" | undefined>;
|
|
11
|
+
/** Bentuk pagination `?page&limit` dengan default dan batas yang konsisten. */
|
|
12
|
+
export declare const paginationQueryShape: {
|
|
13
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
14
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
15
|
+
search: z.ZodOptional<z.ZodString>;
|
|
16
|
+
};
|
|
17
|
+
export type PaginationQueryShape = typeof paginationQueryShape;
|
|
6
18
|
export declare const baseResponseSchema: <T extends z.ZodTypeAny>(dataSchema: T) => z.ZodObject<{
|
|
7
19
|
success: z.ZodBoolean;
|
|
8
20
|
message: z.ZodString;
|
|
@@ -2,9 +2,9 @@ import { z } from "zod";
|
|
|
2
2
|
export declare const shiftTargetTypeEnum: z.ZodEnum<["SISWA", "GURU"]>;
|
|
3
3
|
export declare const attendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
4
4
|
id: string;
|
|
5
|
-
name: string;
|
|
6
5
|
tenantId: string;
|
|
7
6
|
targetType: "SISWA" | "GURU";
|
|
7
|
+
name: string;
|
|
8
8
|
checkInStart: string;
|
|
9
9
|
checkInEnd: string;
|
|
10
10
|
checkOutStart: string;
|
|
@@ -14,9 +14,9 @@ export declare const attendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
14
14
|
fridayCheckOutEnd?: string | null | undefined;
|
|
15
15
|
}, z.ZodTypeDef, {
|
|
16
16
|
id: string;
|
|
17
|
-
name: string;
|
|
18
17
|
tenantId: string;
|
|
19
18
|
targetType: "SISWA" | "GURU";
|
|
19
|
+
name: string;
|
|
20
20
|
checkInStart: string;
|
|
21
21
|
checkInEnd: string;
|
|
22
22
|
checkOutStart: string;
|
|
@@ -26,9 +26,9 @@ export declare const attendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
26
26
|
fridayCheckOutEnd?: string | null | undefined;
|
|
27
27
|
}>, {
|
|
28
28
|
id: string;
|
|
29
|
-
name: string;
|
|
30
29
|
tenantId: string;
|
|
31
30
|
targetType: "SISWA" | "GURU";
|
|
31
|
+
name: string;
|
|
32
32
|
checkInStart: string;
|
|
33
33
|
checkInEnd: string;
|
|
34
34
|
checkOutStart: string;
|
|
@@ -38,9 +38,9 @@ export declare const attendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
38
38
|
fridayCheckOutEnd?: string | null | undefined;
|
|
39
39
|
}, {
|
|
40
40
|
id: string;
|
|
41
|
-
name: string;
|
|
42
41
|
tenantId: string;
|
|
43
42
|
targetType: "SISWA" | "GURU";
|
|
43
|
+
name: string;
|
|
44
44
|
checkInStart: string;
|
|
45
45
|
checkInEnd: string;
|
|
46
46
|
checkOutStart: string;
|
|
@@ -50,8 +50,8 @@ export declare const attendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
50
50
|
fridayCheckOutEnd?: string | null | undefined;
|
|
51
51
|
}>;
|
|
52
52
|
export declare const upsertAttendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
53
|
-
name: string;
|
|
54
53
|
targetType: "SISWA" | "GURU";
|
|
54
|
+
name: string;
|
|
55
55
|
checkInStart: string;
|
|
56
56
|
checkInEnd: string;
|
|
57
57
|
checkOutStart: string;
|
|
@@ -60,8 +60,8 @@ export declare const upsertAttendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
60
60
|
fridayCheckOutStart?: string | null | undefined;
|
|
61
61
|
fridayCheckOutEnd?: string | null | undefined;
|
|
62
62
|
}, z.ZodTypeDef, {
|
|
63
|
-
name: string;
|
|
64
63
|
targetType: "SISWA" | "GURU";
|
|
64
|
+
name: string;
|
|
65
65
|
checkInStart: string;
|
|
66
66
|
checkInEnd: string;
|
|
67
67
|
checkOutStart: string;
|
|
@@ -70,8 +70,8 @@ export declare const upsertAttendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
70
70
|
fridayCheckOutStart?: string | null | undefined;
|
|
71
71
|
fridayCheckOutEnd?: string | null | undefined;
|
|
72
72
|
}>, {
|
|
73
|
-
name: string;
|
|
74
73
|
targetType: "SISWA" | "GURU";
|
|
74
|
+
name: string;
|
|
75
75
|
checkInStart: string;
|
|
76
76
|
checkInEnd: string;
|
|
77
77
|
checkOutStart: string;
|
|
@@ -80,8 +80,8 @@ export declare const upsertAttendanceShiftSchema: z.ZodEffects<z.ZodType<{
|
|
|
80
80
|
fridayCheckOutStart?: string | null | undefined;
|
|
81
81
|
fridayCheckOutEnd?: string | null | undefined;
|
|
82
82
|
}, {
|
|
83
|
-
name: string;
|
|
84
83
|
targetType: "SISWA" | "GURU";
|
|
84
|
+
name: string;
|
|
85
85
|
checkInStart: string;
|
|
86
86
|
checkInEnd: string;
|
|
87
87
|
checkOutStart: string;
|
|
@@ -10,8 +10,8 @@ export declare const tenantSchema: z.ZodObject<{
|
|
|
10
10
|
updatedAt: z.ZodString;
|
|
11
11
|
}, "strip", z.ZodTypeAny, {
|
|
12
12
|
id: string;
|
|
13
|
-
slug: string;
|
|
14
13
|
name: string;
|
|
14
|
+
slug: string;
|
|
15
15
|
timezone: string;
|
|
16
16
|
createdAt: string;
|
|
17
17
|
updatedAt: string;
|
|
@@ -19,8 +19,8 @@ export declare const tenantSchema: z.ZodObject<{
|
|
|
19
19
|
logoUrl?: string | null | undefined;
|
|
20
20
|
}, {
|
|
21
21
|
id: string;
|
|
22
|
-
slug: string;
|
|
23
22
|
name: string;
|
|
23
|
+
slug: string;
|
|
24
24
|
createdAt: string;
|
|
25
25
|
updatedAt: string;
|
|
26
26
|
npsn?: string | null | undefined;
|
|
@@ -36,19 +36,93 @@ export declare const createTenantSchema: z.ZodObject<Pick<{
|
|
|
36
36
|
timezone: z.ZodDefault<z.ZodString>;
|
|
37
37
|
createdAt: z.ZodString;
|
|
38
38
|
updatedAt: z.ZodString;
|
|
39
|
-
}, "
|
|
40
|
-
slug: string;
|
|
39
|
+
}, "name" | "slug" | "npsn" | "logoUrl" | "timezone">, "strip", z.ZodTypeAny, {
|
|
41
40
|
name: string;
|
|
41
|
+
slug: string;
|
|
42
42
|
timezone: string;
|
|
43
43
|
npsn?: string | null | undefined;
|
|
44
44
|
logoUrl?: string | null | undefined;
|
|
45
45
|
}, {
|
|
46
|
-
slug: string;
|
|
47
46
|
name: string;
|
|
47
|
+
slug: string;
|
|
48
|
+
npsn?: string | null | undefined;
|
|
49
|
+
logoUrl?: string | null | undefined;
|
|
50
|
+
timezone?: string | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
export declare const npsnSchema: z.ZodString;
|
|
53
|
+
export declare const phoneSchema: z.ZodString;
|
|
54
|
+
/**
|
|
55
|
+
* Profil sekolah dapat diperbarui oleh admin sekolah. `slug` sengaja tidak
|
|
56
|
+
* termasuk karena dipakai pada URL layanan dan sesi login lintas subdomain.
|
|
57
|
+
*/
|
|
58
|
+
export declare const updateTenantProfileSchema: z.ZodObject<{
|
|
59
|
+
name: z.ZodOptional<z.ZodString>;
|
|
60
|
+
npsn: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
61
|
+
logoUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
62
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
63
|
+
address: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
64
|
+
phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
65
|
+
}, "strip", z.ZodTypeAny, {
|
|
66
|
+
name?: string | undefined;
|
|
67
|
+
npsn?: string | null | undefined;
|
|
68
|
+
logoUrl?: string | null | undefined;
|
|
69
|
+
timezone?: string | undefined;
|
|
70
|
+
address?: string | null | undefined;
|
|
71
|
+
phone?: string | null | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
name?: string | undefined;
|
|
48
74
|
npsn?: string | null | undefined;
|
|
49
75
|
logoUrl?: string | null | undefined;
|
|
50
76
|
timezone?: string | undefined;
|
|
77
|
+
address?: string | null | undefined;
|
|
78
|
+
phone?: string | null | undefined;
|
|
79
|
+
}>;
|
|
80
|
+
export declare const tenantParamsSchema: z.ZodObject<{
|
|
81
|
+
id: z.ZodString;
|
|
82
|
+
}, "strip", z.ZodTypeAny, {
|
|
83
|
+
id: string;
|
|
84
|
+
}, {
|
|
85
|
+
id: string;
|
|
86
|
+
}>;
|
|
87
|
+
export declare const attendanceShiftParamsSchema: z.ZodObject<{
|
|
88
|
+
targetType: z.ZodEnum<["SISWA", "GURU"]>;
|
|
89
|
+
}, "strip", z.ZodTypeAny, {
|
|
90
|
+
targetType: "SISWA" | "GURU";
|
|
91
|
+
}, {
|
|
92
|
+
targetType: "SISWA" | "GURU";
|
|
93
|
+
}>;
|
|
94
|
+
export declare const attendanceShiftListQuerySchema: z.ZodObject<{
|
|
95
|
+
targetType: z.ZodOptional<z.ZodEnum<["SISWA", "GURU"]>>;
|
|
96
|
+
}, "strip", z.ZodTypeAny, {
|
|
97
|
+
targetType?: "SISWA" | "GURU" | undefined;
|
|
98
|
+
}, {
|
|
99
|
+
targetType?: "SISWA" | "GURU" | undefined;
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Body `PUT /tenants/shifts` memuat satu atau kedua shift sekaligus sehingga
|
|
103
|
+
* admin dapat menyimpan form jam presensi dalam satu permintaan.
|
|
104
|
+
*/
|
|
105
|
+
export declare const upsertAttendanceShiftsSchema: z.ZodEffects<z.ZodObject<{
|
|
106
|
+
SISWA: z.ZodOptional<z.ZodAny>;
|
|
107
|
+
GURU: z.ZodOptional<z.ZodAny>;
|
|
108
|
+
}, "strip", z.ZodTypeAny, {
|
|
109
|
+
SISWA?: any;
|
|
110
|
+
GURU?: any;
|
|
111
|
+
}, {
|
|
112
|
+
SISWA?: any;
|
|
113
|
+
GURU?: any;
|
|
114
|
+
}>, {
|
|
115
|
+
SISWA?: any;
|
|
116
|
+
GURU?: any;
|
|
117
|
+
}, {
|
|
118
|
+
SISWA?: any;
|
|
119
|
+
GURU?: any;
|
|
51
120
|
}>;
|
|
52
121
|
export type Tenant = z.infer<typeof tenantSchema>;
|
|
53
122
|
export type CreateTenantInput = z.infer<typeof createTenantSchema>;
|
|
54
123
|
export type CreateTenantSchemaInput = z.input<typeof createTenantSchema>;
|
|
124
|
+
export type UpdateTenantProfileInput = z.infer<typeof updateTenantProfileSchema>;
|
|
125
|
+
export type TenantParams = z.infer<typeof tenantParamsSchema>;
|
|
126
|
+
export type AttendanceShiftParams = z.infer<typeof attendanceShiftParamsSchema>;
|
|
127
|
+
export type AttendanceShiftListQuery = z.infer<typeof attendanceShiftListQuerySchema>;
|
|
128
|
+
export type UpsertAttendanceShiftsInput = z.infer<typeof upsertAttendanceShiftsSchema>;
|