@brite-future-schools-contracts/contracts 1.0.7 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/chunk-AEZO7MJD.js +127 -0
  2. package/dist/chunk-AEZO7MJD.js.map +1 -0
  3. package/dist/chunk-IR6JUP6L.js +48 -0
  4. package/dist/chunk-IR6JUP6L.js.map +1 -0
  5. package/dist/chunk-PCHAGP5X.js +1 -0
  6. package/dist/contracts/index.cjs +179 -0
  7. package/dist/contracts/index.cjs.map +1 -0
  8. package/dist/contracts/index.d.cts +201 -0
  9. package/dist/contracts/index.d.ts +159 -7896
  10. package/dist/contracts/index.js +22 -1281
  11. package/dist/contracts/index.js.map +1 -1
  12. package/dist/index.cjs +222 -0
  13. package/dist/index.cjs.map +1 -0
  14. package/dist/index.d.cts +4 -0
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.js +62 -1393
  17. package/dist/index.js.map +1 -1
  18. package/dist/schemas/index.cjs +181 -0
  19. package/dist/schemas/index.cjs.map +1 -0
  20. package/dist/schemas/index.d.cts +145 -0
  21. package/dist/schemas/index.d.ts +130 -841
  22. package/dist/schemas/index.js +42 -572
  23. package/dist/schemas/index.js.map +1 -1
  24. package/package.json +32 -59
  25. package/dist/chunk-7A7N5DCT.mjs +0 -854
  26. package/dist/chunk-7A7N5DCT.mjs.map +0 -1
  27. package/dist/chunk-OJCH3PZZ.mjs +0 -495
  28. package/dist/chunk-OJCH3PZZ.mjs.map +0 -1
  29. package/dist/contracts/index.d.mts +0 -7938
  30. package/dist/contracts/index.mjs +0 -36
  31. package/dist/index.d.mts +0 -4
  32. package/dist/index.mjs +0 -149
  33. package/dist/index.mjs.map +0 -1
  34. package/dist/schemas/index.d.mts +0 -856
  35. package/dist/schemas/index.mjs +0 -117
  36. package/dist/schemas/index.mjs.map +0 -1
  37. package/src/contracts/index.ts +0 -1096
  38. package/src/index.ts +0 -2
  39. package/src/schemas/index.ts +0 -524
  40. /package/dist/{contracts/index.mjs.map → chunk-PCHAGP5X.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,1395 +1,64 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- academicsContract: () => academicsContract,
24
- adminContract: () => adminContract,
25
- appContract: () => appContract,
26
- assessmentScoreInputSchema: () => assessmentScoreInputSchema,
27
- assessmentTypeEnum: () => assessmentTypeEnum,
28
- assetCategoryEnum: () => assetCategoryEnum,
29
- assetConditionEnum: () => assetConditionEnum,
30
- assetsContract: () => assetsContract,
31
- authContract: () => authContract,
32
- borrowingStatusEnum: () => borrowingStatusEnum,
33
- branchSchema: () => branchSchema,
34
- branchesContract: () => branchesContract,
35
- busRegisterEntrySchema: () => busRegisterEntrySchema,
36
- busRegisterStatusEnum: () => busRegisterStatusEnum,
37
- changePasswordInputSchema: () => changePasswordInputSchema,
38
- commsContract: () => commsContract,
39
- createBranchInputSchema: () => createBranchInputSchema,
40
- createStudentInputSchema: () => createStudentInputSchema,
41
- dateRangeSchema: () => dateRangeSchema,
42
- disciplineContract: () => disciplineContract,
43
- disciplineRulingEnum: () => disciplineRulingEnum,
44
- employmentTypeEnum: () => employmentTypeEnum,
45
- feeItemCategoryEnum: () => feeItemCategoryEnum,
46
- feeItemSchema: () => feeItemSchema,
47
- financeContract: () => financeContract,
48
- genderEnum: () => genderEnum,
49
- gradeLevelEnum: () => gradeLevelEnum,
50
- guardianSchema: () => guardianSchema,
51
- hrContract: () => hrContract,
52
- incidentSeverityEnum: () => incidentSeverityEnum,
53
- incidentStatusEnum: () => incidentStatusEnum,
54
- invoiceStatusEnum: () => invoiceStatusEnum,
55
- leaveRequestInputSchema: () => leaveRequestInputSchema,
56
- leaveStatusEnum: () => leaveStatusEnum,
57
- libraryContract: () => libraryContract,
58
- listStudentsInputSchema: () => listStudentsInputSchema,
59
- loginInputSchema: () => loginInputSchema,
60
- loginOutputSchema: () => loginOutputSchema,
61
- maintenanceTicketStatusEnum: () => maintenanceTicketStatusEnum,
62
- mfaVerifyInputSchema: () => mfaVerifyInputSchema,
63
- notificationTypeEnum: () => notificationTypeEnum,
64
- paginationSchema: () => paginationSchema,
65
- paymentMethodEnum: () => paymentMethodEnum,
66
- payrollContract: () => payrollContract,
67
- payrollRunStatusEnum: () => payrollRunStatusEnum,
68
- recordPaymentInputSchema: () => recordPaymentInputSchema,
69
- refreshInputSchema: () => refreshInputSchema,
70
- refreshTokenOutputSchema: () => refreshTokenOutputSchema,
71
- reportCardStatusEnum: () => reportCardStatusEnum,
72
- routeSchema: () => routeSchema,
73
- rubricBandEnum: () => rubricBandEnum,
74
- sendBulkSmsInputSchema: () => sendBulkSmsInputSchema,
75
- sponsorSchema: () => sponsorSchema,
76
- sponsorTypeEnum: () => sponsorTypeEnum,
77
- staffSchema: () => staffSchema,
78
- storageContract: () => storageContract,
79
- studentSchema: () => studentSchema,
80
- studentStatusEnum: () => studentStatusEnum,
81
- studentsContract: () => studentsContract,
82
- subjectSchema: () => subjectSchema,
83
- systemRoleEnum: () => systemRoleEnum,
84
- transportContract: () => transportContract,
85
- tripLogInputSchema: () => tripLogInputSchema,
86
- tripLogSchema: () => tripLogSchema,
87
- userSchema: () => userSchema,
88
- userStatusEnum: () => userStatusEnum,
89
- uuidSchema: () => uuidSchema,
90
- vehicleOwnershipEnum: () => vehicleOwnershipEnum,
91
- vehicleSchema: () => vehicleSchema,
92
- vehicleStatusEnum: () => vehicleStatusEnum,
93
- vehicleTypeEnum: () => vehicleTypeEnum
94
- });
95
- module.exports = __toCommonJS(src_exports);
96
-
97
- // src/schemas/index.ts
98
- var import_zod = require("zod");
99
- var uuidSchema = import_zod.z.string().uuid();
100
- var paginationSchema = import_zod.z.object({
101
- page: import_zod.z.number().int().min(1).default(1),
102
- limit: import_zod.z.number().int().min(1).max(100).default(20)
103
- });
104
- var dateRangeSchema = import_zod.z.object({
105
- from: import_zod.z.string().datetime().optional(),
106
- to: import_zod.z.string().datetime().optional()
107
- });
108
- var genderEnum = import_zod.z.enum(["male", "female"]);
109
- var userStatusEnum = import_zod.z.enum(["active", "inactive", "suspended"]);
110
- var systemRoleEnum = import_zod.z.enum([
111
- "DIRECTOR",
112
- "PRINCIPAL",
113
- "DEPUTY_PRINCIPAL",
114
- "HOD",
115
- "CLASS_TEACHER",
116
- "SUBJECT_TEACHER",
117
- "BURSAR",
118
- "HR_ADMIN",
119
- "SCHOOL_NURSE",
120
- "LIBRARIAN",
121
- "LAB_TECHNICIAN",
122
- "SPORTS_COACH",
123
- "COUNSELLOR",
124
- "CARETAKER",
125
- "SECURITY",
126
- "KITCHEN_STAFF",
127
- "DRIVER",
128
- "IT_ADMIN",
129
- "STUDENT",
130
- "PARENT",
131
- "ORG_SPONSOR",
132
- "INDIVIDUAL_SPONSOR"
133
- ]);
134
- var loginInputSchema = import_zod.z.object({
135
- email: import_zod.z.string().email(),
136
- password: import_zod.z.string().min(8),
137
- deviceFingerprint: import_zod.z.string().optional()
138
- });
139
- var loginOutputSchema = import_zod.z.object({
140
- accessToken: import_zod.z.string(),
141
- refreshToken: import_zod.z.string().optional(),
142
- user: import_zod.z.object({
143
- id: uuidSchema,
144
- firstName: import_zod.z.string(),
145
- middleName: import_zod.z.string().nullable(),
146
- lastName: import_zod.z.string(),
147
- email: import_zod.z.string().email(),
148
- avatarUrl: import_zod.z.string().nullable(),
149
- roles: import_zod.z.array(
150
- import_zod.z.object({
151
- id: uuidSchema,
152
- name: import_zod.z.string(),
153
- branchId: uuidSchema.nullable()
154
- })
155
- ),
156
- activeBranchId: uuidSchema.nullable(),
157
- isMfaEnabled: import_zod.z.boolean()
158
- })
159
- });
160
- var refreshTokenOutputSchema = import_zod.z.object({
161
- accessToken: import_zod.z.string()
162
- });
163
- var refreshInputSchema = import_zod.z.object({
164
- refreshToken: import_zod.z.string().optional()
165
- });
166
- var mfaVerifyInputSchema = import_zod.z.object({
167
- totp: import_zod.z.string().length(6)
168
- });
169
- var changePasswordInputSchema = import_zod.z.object({
170
- currentPassword: import_zod.z.string().min(8),
171
- newPassword: import_zod.z.string().min(8)
172
- });
173
- var userSchema = import_zod.z.object({
174
- id: uuidSchema,
175
- firstName: import_zod.z.string(),
176
- middleName: import_zod.z.string().nullable(),
177
- lastName: import_zod.z.string(),
178
- email: import_zod.z.string().email(),
179
- phone: import_zod.z.string().nullable(),
180
- avatarUrl: import_zod.z.string().nullable(),
181
- isActive: import_zod.z.boolean(),
182
- isMfaEnabled: import_zod.z.boolean(),
183
- lastLoginAt: import_zod.z.string().datetime().nullable(),
184
- createdAt: import_zod.z.string().datetime()
185
- });
186
- var branchSchema = import_zod.z.object({
187
- id: uuidSchema,
188
- name: import_zod.z.string(),
189
- code: import_zod.z.string(),
190
- address: import_zod.z.string(),
191
- county: import_zod.z.string(),
192
- phone: import_zod.z.string().nullable(),
193
- email: import_zod.z.string().email().nullable(),
194
- logoUrl: import_zod.z.string().nullable(),
195
- motto: import_zod.z.string().nullable(),
196
- principalId: uuidSchema.nullable(),
197
- mpesaPaybill: import_zod.z.string().nullable(),
198
- featureFlags: import_zod.z.record(import_zod.z.boolean()),
199
- createdAt: import_zod.z.string().datetime()
200
- });
201
- var createBranchInputSchema = import_zod.z.object({
202
- name: import_zod.z.string().min(2).max(100),
203
- code: import_zod.z.string().min(2).max(20),
204
- address: import_zod.z.string(),
205
- county: import_zod.z.string(),
206
- phone: import_zod.z.string().optional(),
207
- email: import_zod.z.string().email().optional(),
208
- motto: import_zod.z.string().optional()
209
- });
210
- var studentStatusEnum = import_zod.z.enum([
211
- "active",
212
- "transferred",
213
- "graduated",
214
- "suspended",
215
- "withdrawn"
216
- ]);
217
- var studentSchema = import_zod.z.object({
218
- id: uuidSchema,
219
- branchId: uuidSchema,
220
- admissionNo: import_zod.z.string(),
221
- nemisNo: import_zod.z.string().nullable(),
222
- firstName: import_zod.z.string(),
223
- middleName: import_zod.z.string().nullable(),
224
- lastName: import_zod.z.string(),
225
- dateOfBirth: import_zod.z.string(),
226
- gender: genderEnum,
227
- photoUrl: import_zod.z.string().nullable(),
228
- bloodGroup: import_zod.z.string().nullable(),
229
- admissionDate: import_zod.z.string(),
230
- status: studentStatusEnum,
231
- currentClassId: uuidSchema.nullable(),
232
- createdAt: import_zod.z.string().datetime()
233
- });
234
- var createStudentInputSchema = import_zod.z.object({
235
- admissionNo: import_zod.z.string().min(1),
236
- nemisNo: import_zod.z.string().optional(),
237
- firstName: import_zod.z.string().min(1).max(100),
238
- middleName: import_zod.z.string().max(100).optional(),
239
- lastName: import_zod.z.string().min(1).max(100),
240
- dateOfBirth: import_zod.z.string(),
241
- gender: genderEnum,
242
- admissionDate: import_zod.z.string(),
243
- guardianId: uuidSchema.optional()
244
- });
245
- var listStudentsInputSchema = paginationSchema.extend({
246
- branchId: uuidSchema.optional(),
247
- classId: uuidSchema.optional(),
248
- gradeId: uuidSchema.optional(),
249
- search: import_zod.z.string().optional(),
250
- status: studentStatusEnum.optional(),
251
- termId: uuidSchema.optional()
252
- });
253
- var guardianSchema = import_zod.z.object({
254
- id: uuidSchema,
255
- userId: uuidSchema,
256
- firstName: import_zod.z.string(),
257
- middleName: import_zod.z.string().nullable(),
258
- lastName: import_zod.z.string(),
259
- relationship: import_zod.z.string(),
260
- phone: import_zod.z.string(),
261
- email: import_zod.z.string().email().nullable(),
262
- nationalId: import_zod.z.string().nullable(),
263
- occupation: import_zod.z.string().nullable(),
264
- address: import_zod.z.string().nullable()
265
- });
266
- var sponsorTypeEnum = import_zod.z.enum(["organisation", "individual"]);
267
- var sponsorSchema = import_zod.z.object({
268
- id: uuidSchema,
269
- branchId: uuidSchema,
270
- type: sponsorTypeEnum,
271
- organisationName: import_zod.z.string().nullable(),
272
- firstName: import_zod.z.string().nullable(),
273
- middleName: import_zod.z.string().nullable(),
274
- lastName: import_zod.z.string().nullable(),
275
- contactUserId: uuidSchema.nullable(),
276
- phone: import_zod.z.string(),
277
- email: import_zod.z.string().email().nullable(),
278
- address: import_zod.z.string().nullable()
279
- });
280
- var gradeLevelEnum = import_zod.z.enum([
281
- "PP1",
282
- "PP2",
283
- "G1",
284
- "G2",
285
- "G3",
286
- "G4",
287
- "G5",
288
- "G6",
289
- "G7",
290
- "G8",
291
- "G9"
292
- ]);
293
- var assessmentTypeEnum = import_zod.z.enum([
294
- "formative",
295
- "summative",
296
- "knec_national",
297
- "informal"
298
- ]);
299
- var rubricBandEnum = import_zod.z.enum(["EE", "ME", "AE", "BE"]);
300
- var subjectSchema = import_zod.z.object({
301
- id: uuidSchema,
302
- branchId: uuidSchema,
303
- name: import_zod.z.string(),
304
- code: import_zod.z.string(),
305
- gradeLevel: gradeLevelEnum,
306
- departmentId: uuidSchema.nullable()
307
- });
308
- var assessmentScoreInputSchema = import_zod.z.object({
309
- assessmentId: uuidSchema,
310
- studentId: uuidSchema,
311
- subStrandId: uuidSchema,
312
- numericScore: import_zod.z.number().min(0).max(100),
313
- comments: import_zod.z.string().optional()
314
- });
315
- var reportCardStatusEnum = import_zod.z.enum([
316
- "draft",
317
- "hod_review",
318
- "principal_review",
319
- "released",
320
- "blocked"
321
- ]);
322
- var feeItemCategoryEnum = import_zod.z.enum([
323
- "compulsory",
324
- "class_specific",
325
- "additive"
326
- ]);
327
- var paymentMethodEnum = import_zod.z.enum([
328
- "mpesa",
329
- "bank",
330
- "card",
331
- "cash",
332
- "cheque"
333
- ]);
334
- var invoiceStatusEnum = import_zod.z.enum([
335
- "draft",
336
- "sent",
337
- "partial",
338
- "paid",
339
- "overdue",
340
- "cancelled"
341
- ]);
342
- var feeItemSchema = import_zod.z.object({
343
- id: uuidSchema,
344
- branchId: uuidSchema,
345
- name: import_zod.z.string(),
346
- category: feeItemCategoryEnum,
347
- defaultAmount: import_zod.z.number(),
348
- applicableGrades: import_zod.z.array(gradeLevelEnum),
349
- isActive: import_zod.z.boolean()
350
- });
351
- var recordPaymentInputSchema = import_zod.z.object({
352
- studentId: uuidSchema,
353
- invoiceId: uuidSchema,
354
- amount: import_zod.z.number().positive(),
355
- method: paymentMethodEnum,
356
- reference: import_zod.z.string().optional(),
357
- mpesaReceipt: import_zod.z.string().optional(),
358
- paymentDate: import_zod.z.string()
359
- });
360
- var employmentTypeEnum = import_zod.z.enum([
361
- "permanent",
362
- "contract",
363
- "temporary",
364
- "intern"
365
- ]);
366
- var staffSchema = import_zod.z.object({
367
- id: uuidSchema,
368
- branchId: uuidSchema,
369
- userId: uuidSchema,
370
- firstName: import_zod.z.string(),
371
- middleName: import_zod.z.string().nullable(),
372
- lastName: import_zod.z.string(),
373
- tscNumber: import_zod.z.string().nullable(),
374
- nationalId: import_zod.z.string(),
375
- kraPin: import_zod.z.string().nullable(),
376
- nhifNo: import_zod.z.string().nullable(),
377
- nssfNo: import_zod.z.string().nullable(),
378
- phone: import_zod.z.string(),
379
- departmentId: uuidSchema.nullable(),
380
- designation: import_zod.z.string(),
381
- employmentType: employmentTypeEnum,
382
- contractStart: import_zod.z.string(),
383
- contractEnd: import_zod.z.string().nullable(),
384
- basicSalary: import_zod.z.number(),
385
- houseAllowance: import_zod.z.number().default(0),
386
- transportAllowance: import_zod.z.number().default(0),
387
- bankName: import_zod.z.string().nullable(),
388
- bankAccount: import_zod.z.string().nullable(),
389
- status: userStatusEnum
390
- });
391
- var leaveStatusEnum = import_zod.z.enum([
392
- "pending",
393
- "approved",
394
- "rejected",
395
- "cancelled"
396
- ]);
397
- var leaveRequestInputSchema = import_zod.z.object({
398
- leaveTypeId: uuidSchema,
399
- startDate: import_zod.z.string(),
400
- endDate: import_zod.z.string(),
401
- reason: import_zod.z.string().min(10)
402
- });
403
- var vehicleOwnershipEnum = import_zod.z.enum(["owned", "contracted"]);
404
- var vehicleTypeEnum = import_zod.z.enum(["bus", "van", "pickup", "other"]);
405
- var busRegisterStatusEnum = import_zod.z.enum(["boarded", "alighted", "absent"]);
406
- var tripLogInputSchema = import_zod.z.object({
407
- vehicleId: uuidSchema,
408
- routeId: uuidSchema,
409
- departureTime: import_zod.z.string().datetime(),
410
- tripType: import_zod.z.enum(["morning", "evening", "errand"])
411
- });
412
- var busRegisterEntrySchema = import_zod.z.object({
413
- studentId: uuidSchema,
414
- status: busRegisterStatusEnum
415
- });
416
- var vehicleStatusEnum = import_zod.z.enum(["active", "in_maintenance", "decommissioned"]);
417
- var vehicleSchema = import_zod.z.object({
418
- id: uuidSchema,
419
- branchId: uuidSchema,
420
- plateNo: import_zod.z.string(),
421
- make: import_zod.z.string().nullable(),
422
- model: import_zod.z.string().nullable(),
423
- capacity: import_zod.z.number().nullable(),
424
- type: vehicleTypeEnum,
425
- ownershipType: vehicleOwnershipEnum,
426
- insuranceExpiry: import_zod.z.string().nullable(),
427
- inspectionDate: import_zod.z.string().nullable(),
428
- status: vehicleStatusEnum,
429
- driverUserId: uuidSchema.nullable(),
430
- createdAt: import_zod.z.string().datetime()
431
- });
432
- var routeSchema = import_zod.z.object({
433
- id: uuidSchema,
434
- branchId: uuidSchema,
435
- name: import_zod.z.string(),
436
- description: import_zod.z.string().nullable(),
437
- isActive: import_zod.z.boolean(),
438
- stops: import_zod.z.array(import_zod.z.object({
439
- id: uuidSchema,
440
- stopName: import_zod.z.string(),
441
- stopOrder: import_zod.z.number(),
442
- estimatedTime: import_zod.z.string().nullable()
443
- })).optional()
444
- });
445
- var tripLogSchema = import_zod.z.object({
446
- id: uuidSchema,
447
- branchId: uuidSchema,
448
- vehicleId: uuidSchema,
449
- routeId: uuidSchema.nullable(),
450
- driverUserId: uuidSchema,
451
- departureTime: import_zod.z.string().datetime(),
452
- arrivalTime: import_zod.z.string().datetime().nullable(),
453
- tripType: import_zod.z.enum(["morning", "evening", "errand"]),
454
- notes: import_zod.z.string().nullable(),
455
- createdAt: import_zod.z.string().datetime(),
456
- vehicle: import_zod.z.object({ plateNo: import_zod.z.string(), type: import_zod.z.string() }).optional(),
457
- route: import_zod.z.object({ name: import_zod.z.string() }).nullable().optional()
458
- });
459
- var assetCategoryEnum = import_zod.z.enum([
460
- "furniture",
461
- "lab_equipment",
462
- "ict_device",
463
- "vehicle",
464
- "sports_equipment",
465
- "kitchen_equipment",
466
- "musical_instrument",
467
- "classroom_supply",
468
- "library_book",
469
- "other"
470
- ]);
471
- var assetConditionEnum = import_zod.z.enum([
472
- "excellent",
473
- "good",
474
- "fair",
475
- "poor",
476
- "condemned"
477
- ]);
478
- var maintenanceTicketStatusEnum = import_zod.z.enum([
479
- "open",
480
- "in_progress",
481
- "resolved",
482
- "closed"
483
- ]);
484
- var borrowingStatusEnum = import_zod.z.enum([
485
- "active",
486
- "returned",
487
- "overdue",
488
- "lost"
489
- ]);
490
- var incidentSeverityEnum = import_zod.z.enum([
491
- "minor",
492
- "moderate",
493
- "serious",
494
- "critical"
495
- ]);
496
- var incidentStatusEnum = import_zod.z.enum([
497
- "open",
498
- "counsellor_review",
499
- "hod_review",
500
- "principal_ruling",
501
- "resolved"
502
- ]);
503
- var disciplineRulingEnum = import_zod.z.enum([
504
- "verbal_warning",
505
- "written_warning",
506
- "suspension",
507
- "expulsion",
508
- "dismissed"
509
- ]);
510
- var payrollRunStatusEnum = import_zod.z.enum(["draft", "approved", "paid"]);
511
- var notificationTypeEnum = import_zod.z.enum([
512
- "report_card",
513
- "fee_invoice",
514
- "fee_reminder",
515
- "fee_block",
516
- "attendance_absent",
517
- "bus_departed",
518
- "bus_arrived",
519
- "discipline_incident",
520
- "assignment",
521
- "notice",
522
- "leave",
523
- "payslip"
524
- ]);
525
- var sendBulkSmsInputSchema = import_zod.z.object({
526
- branchId: uuidSchema,
527
- message: import_zod.z.string().min(1).max(160),
528
- recipientType: import_zod.z.enum(["class", "grade", "whole_school", "custom"]),
529
- recipientIds: import_zod.z.array(uuidSchema).optional(),
530
- scheduleAt: import_zod.z.string().datetime().optional()
531
- });
532
-
533
- // src/contracts/index.ts
534
- var import_contract = require("@orpc/contract");
535
- var import_zod2 = require("zod");
536
- var authContract = {
537
- login: import_contract.oc.input(loginInputSchema).output(loginOutputSchema),
538
- refresh: import_contract.oc.input(refreshInputSchema).output(refreshTokenOutputSchema),
539
- logout: import_contract.oc.output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
540
- me: import_contract.oc.output(
541
- userSchema.extend({
542
- roles: import_zod2.z.array(
543
- import_zod2.z.object({
544
- id: uuidSchema,
545
- name: import_zod2.z.string(),
546
- branchId: uuidSchema.nullable()
547
- })
548
- )
549
- })
550
- ),
551
- verifyMfa: import_contract.oc.input(mfaVerifyInputSchema).output(import_zod2.z.object({ verified: import_zod2.z.boolean() })),
552
- changePassword: import_contract.oc.input(changePasswordInputSchema).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
553
- switchBranch: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.object({ accessToken: import_zod2.z.string() }))
554
- };
555
- var branchesContract = {
556
- list: import_contract.oc.output(import_zod2.z.array(branchSchema)),
557
- get: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema })).output(branchSchema),
558
- create: import_contract.oc.input(createBranchInputSchema).output(branchSchema),
559
- update: import_contract.oc.input(createBranchInputSchema.partial().extend({ id: uuidSchema })).output(branchSchema),
560
- updateFeatureFlags: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema, flags: import_zod2.z.record(import_zod2.z.boolean()) })).output(branchSchema)
561
- };
562
- var studentWithGuardians = studentSchema.extend({
563
- guardians: import_zod2.z.array(guardianSchema),
564
- sponsors: import_zod2.z.array(sponsorSchema),
565
- currentClass: import_zod2.z.object({ id: uuidSchema, name: import_zod2.z.string(), grade: import_zod2.z.string() }).nullable()
566
- });
567
- var studentsContract = {
568
- list: import_contract.oc.input(listStudentsInputSchema).output(
569
- import_zod2.z.object({
570
- data: import_zod2.z.array(studentSchema),
571
- total: import_zod2.z.number(),
572
- page: import_zod2.z.number(),
573
- limit: import_zod2.z.number()
574
- })
575
- ),
576
- get: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema })).output(studentWithGuardians),
577
- create: import_contract.oc.input(createStudentInputSchema).output(studentSchema),
578
- update: import_contract.oc.input(createStudentInputSchema.partial().extend({ id: uuidSchema })).output(studentSchema),
579
- enroll: import_contract.oc.input(
580
- import_zod2.z.object({
581
- studentId: uuidSchema,
582
- classId: uuidSchema,
583
- termId: uuidSchema
584
- })
585
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
586
- transfer: import_contract.oc.input(
587
- import_zod2.z.object({
588
- studentId: uuidSchema,
589
- toBranchId: uuidSchema,
590
- reason: import_zod2.z.string()
591
- })
592
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
593
- linkGuardian: import_contract.oc.input(
594
- import_zod2.z.object({
595
- studentId: uuidSchema,
596
- guardianId: uuidSchema,
597
- isPrimary: import_zod2.z.boolean()
598
- })
599
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
600
- linkSponsor: import_contract.oc.input(
601
- import_zod2.z.object({
602
- studentId: uuidSchema,
603
- sponsorId: uuidSchema,
604
- termId: uuidSchema,
605
- feeItemIds: import_zod2.z.array(uuidSchema)
606
- })
607
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
608
- listGuardians: import_contract.oc.input(
609
- import_zod2.z.object({
610
- branchId: uuidSchema.optional(),
611
- search: import_zod2.z.string().optional()
612
- })
613
- ).output(
614
- import_zod2.z.array(
615
- guardianSchema.extend({
616
- email: import_zod2.z.string().nullable(),
617
- linkedStudents: import_zod2.z.array(
618
- import_zod2.z.object({
619
- id: uuidSchema,
620
- firstName: import_zod2.z.string(),
621
- lastName: import_zod2.z.string(),
622
- admissionNo: import_zod2.z.string(),
623
- status: import_zod2.z.string()
624
- })
625
- )
626
- })
627
- )
628
- ),
629
- createGuardian: import_contract.oc.input(
630
- import_zod2.z.object({
631
- firstName: import_zod2.z.string().min(1),
632
- middleName: import_zod2.z.string().optional(),
633
- lastName: import_zod2.z.string().min(1),
634
- relationship: import_zod2.z.string().min(1),
635
- phone: import_zod2.z.string().min(9),
636
- email: import_zod2.z.string().email().optional(),
637
- nationalId: import_zod2.z.string().optional(),
638
- occupation: import_zod2.z.string().optional(),
639
- address: import_zod2.z.string().optional()
640
- })
641
- ).output(guardianSchema),
642
- listClasses: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema.optional() })).output(
643
- import_zod2.z.array(
644
- import_zod2.z.object({
645
- id: uuidSchema,
646
- name: import_zod2.z.string(),
647
- grade: import_zod2.z.string(),
648
- level: import_zod2.z.string()
649
- })
650
- )
651
- ),
652
- listGrades: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema.optional() })).output(
653
- import_zod2.z.array(
654
- import_zod2.z.object({
655
- id: uuidSchema,
656
- name: import_zod2.z.string(),
657
- level: import_zod2.z.string()
658
- })
659
- )
660
- ),
661
- listTerms: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema.optional() })).output(
662
- import_zod2.z.array(
663
- import_zod2.z.object({
664
- id: uuidSchema,
665
- name: import_zod2.z.string(),
666
- isCurrent: import_zod2.z.boolean(),
667
- startDate: import_zod2.z.string(),
668
- endDate: import_zod2.z.string()
669
- })
670
- )
671
- ),
672
- listSponsors: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema.optional() })).output(import_zod2.z.array(sponsorSchema))
673
- };
674
- var academicsContract = {
675
- subjects: {
676
- list: import_contract.oc.input(
677
- import_zod2.z.object({
678
- branchId: uuidSchema,
679
- gradeLevel: gradeLevelEnum.optional()
680
- })
681
- ).output(import_zod2.z.array(subjectSchema)),
682
- create: import_contract.oc.input(
683
- import_zod2.z.object({
684
- name: import_zod2.z.string(),
685
- code: import_zod2.z.string(),
686
- gradeLevel: gradeLevelEnum,
687
- departmentId: uuidSchema.optional()
688
- })
689
- ).output(subjectSchema)
690
- },
691
- timetable: {
692
- get: import_contract.oc.input(import_zod2.z.object({ classId: uuidSchema, termId: uuidSchema })).output(
693
- import_zod2.z.array(
694
- import_zod2.z.object({
695
- id: uuidSchema,
696
- dayOfWeek: import_zod2.z.number().min(1).max(5),
697
- periodNo: import_zod2.z.number(),
698
- subject: subjectSchema,
699
- teacherName: import_zod2.z.string(),
700
- room: import_zod2.z.string().nullable(),
701
- startTime: import_zod2.z.string(),
702
- endTime: import_zod2.z.string()
703
- })
704
- )
705
- ),
706
- upsert: import_contract.oc.input(
707
- import_zod2.z.object({
708
- classId: uuidSchema,
709
- termId: uuidSchema,
710
- slots: import_zod2.z.array(
711
- import_zod2.z.object({
712
- dayOfWeek: import_zod2.z.number().min(1).max(5),
713
- periodNo: import_zod2.z.number(),
714
- subjectId: uuidSchema,
715
- teacherId: uuidSchema,
716
- room: import_zod2.z.string().optional(),
717
- startTime: import_zod2.z.string(),
718
- endTime: import_zod2.z.string()
719
- })
720
- )
721
- })
722
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
723
- },
724
- assessments: {
725
- list: import_contract.oc.input(
726
- import_zod2.z.object({
727
- classId: uuidSchema,
728
- termId: uuidSchema,
729
- type: assessmentTypeEnum.optional()
730
- })
731
- ).output(
732
- import_zod2.z.array(
733
- import_zod2.z.object({
734
- id: uuidSchema,
735
- title: import_zod2.z.string(),
736
- type: assessmentTypeEnum,
737
- date: import_zod2.z.string(),
738
- maxScore: import_zod2.z.number(),
739
- subjectId: uuidSchema
740
- })
741
- )
742
- ),
743
- create: import_contract.oc.input(
744
- import_zod2.z.object({
745
- title: import_zod2.z.string(),
746
- type: assessmentTypeEnum,
747
- classId: uuidSchema,
748
- subjectId: uuidSchema,
749
- termId: uuidSchema,
750
- date: import_zod2.z.string(),
751
- maxScore: import_zod2.z.number()
752
- })
753
- ).output(import_zod2.z.object({ id: uuidSchema })),
754
- enterScores: import_contract.oc.input(import_zod2.z.object({ scores: import_zod2.z.array(assessmentScoreInputSchema) })).output(import_zod2.z.object({ saved: import_zod2.z.number() }))
755
- },
756
- reportCards: {
757
- list: import_contract.oc.input(
758
- import_zod2.z.object({
759
- branchId: uuidSchema,
760
- termId: uuidSchema,
761
- classId: uuidSchema.optional(),
762
- status: reportCardStatusEnum.optional()
763
- })
764
- ).output(
765
- import_zod2.z.array(
766
- import_zod2.z.object({
767
- id: uuidSchema,
768
- studentId: uuidSchema,
769
- studentName: import_zod2.z.string(),
770
- status: reportCardStatusEnum,
771
- generatedAt: import_zod2.z.string().datetime().nullable()
772
- })
773
- )
774
- ),
775
- get: import_contract.oc.input(import_zod2.z.object({ studentId: uuidSchema, termId: uuidSchema })).output(
776
- import_zod2.z.object({
777
- id: uuidSchema,
778
- studentId: uuidSchema,
779
- termId: uuidSchema,
780
- status: reportCardStatusEnum,
781
- scores: import_zod2.z.array(import_zod2.z.any()),
782
- teacherComments: import_zod2.z.string().nullable(),
783
- generatedAt: import_zod2.z.string().datetime().nullable()
784
- })
785
- ),
786
- updateStatus: import_contract.oc.input(
787
- import_zod2.z.object({
788
- id: uuidSchema,
789
- status: reportCardStatusEnum,
790
- comments: import_zod2.z.string().optional()
791
- })
792
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
793
- },
794
- attendance: {
795
- markClass: import_contract.oc.input(
796
- import_zod2.z.object({
797
- classId: uuidSchema,
798
- date: import_zod2.z.string(),
799
- subjectId: uuidSchema,
800
- records: import_zod2.z.array(
801
- import_zod2.z.object({
802
- studentId: uuidSchema,
803
- present: import_zod2.z.boolean(),
804
- note: import_zod2.z.string().optional()
805
- })
806
- )
807
- })
808
- ).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
809
- getClassAttendance: import_contract.oc.input(
810
- import_zod2.z.object({ classId: uuidSchema, from: import_zod2.z.string(), to: import_zod2.z.string() })
811
- ).output(
812
- import_zod2.z.array(
813
- import_zod2.z.object({
814
- studentId: uuidSchema,
815
- studentName: import_zod2.z.string(),
816
- presentDays: import_zod2.z.number(),
817
- absentDays: import_zod2.z.number(),
818
- percentage: import_zod2.z.number()
819
- })
820
- )
821
- )
822
- }
823
- };
824
- var financeContract = {
825
- feeItems: {
826
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(feeItemSchema)),
827
- create: import_contract.oc.input(
828
- import_zod2.z.object({
829
- name: import_zod2.z.string(),
830
- category: import_zod2.z.any(),
831
- defaultAmount: import_zod2.z.number(),
832
- applicableGrades: import_zod2.z.array(gradeLevelEnum)
833
- })
834
- ).output(feeItemSchema)
835
- },
836
- invoices: {
837
- listForStudent: import_contract.oc.input(import_zod2.z.object({ studentId: uuidSchema, termId: uuidSchema.optional() })).output(
838
- import_zod2.z.array(
839
- import_zod2.z.object({
840
- id: uuidSchema,
841
- termId: uuidSchema,
842
- payerType: import_zod2.z.string(),
843
- totalAmount: import_zod2.z.number(),
844
- paidAmount: import_zod2.z.number(),
845
- balance: import_zod2.z.number(),
846
- status: invoiceStatusEnum,
847
- dueDate: import_zod2.z.string().nullable()
848
- })
849
- )
850
- ),
851
- generate: import_contract.oc.input(
852
- import_zod2.z.object({
853
- branchId: uuidSchema,
854
- termId: uuidSchema,
855
- studentIds: import_zod2.z.array(uuidSchema).optional()
856
- })
857
- ).output(import_zod2.z.object({ generated: import_zod2.z.number() }))
858
- },
859
- payments: {
860
- record: import_contract.oc.input(recordPaymentInputSchema).output(import_zod2.z.object({ id: uuidSchema, receipt: import_zod2.z.string() })),
861
- listForStudent: import_contract.oc.input(import_zod2.z.object({ studentId: uuidSchema })).output(
862
- import_zod2.z.array(
863
- import_zod2.z.object({
864
- id: uuidSchema,
865
- amount: import_zod2.z.number(),
866
- method: import_zod2.z.string(),
867
- reference: import_zod2.z.string().nullable(),
868
- paymentDate: import_zod2.z.string(),
869
- createdAt: import_zod2.z.string()
870
- })
871
- )
872
- )
873
- },
874
- blocks: {
875
- list: import_contract.oc.input(
876
- import_zod2.z.object({
877
- branchId: uuidSchema,
878
- termId: uuidSchema,
879
- active: import_zod2.z.boolean().optional()
880
- })
881
- ).output(
882
- import_zod2.z.array(
883
- import_zod2.z.object({
884
- id: uuidSchema,
885
- studentId: uuidSchema,
886
- studentName: import_zod2.z.string(),
887
- blockType: import_zod2.z.string(),
888
- isActive: import_zod2.z.boolean(),
889
- balanceAtBlock: import_zod2.z.number()
890
- })
891
- )
892
- ),
893
- lift: import_contract.oc.input(import_zod2.z.object({ blockId: uuidSchema, reason: import_zod2.z.string() })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
894
- },
895
- reports: {
896
- termCollection: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema, termId: uuidSchema })).output(
897
- import_zod2.z.object({
898
- totalExpected: import_zod2.z.number(),
899
- totalCollected: import_zod2.z.number(),
900
- totalOutstanding: import_zod2.z.number(),
901
- collectionRate: import_zod2.z.number(),
902
- byPaymentMethod: import_zod2.z.record(import_zod2.z.number())
903
- })
904
- )
905
- }
906
- };
907
- var hrContract = {
908
- staff: {
909
- list: import_contract.oc.input(
910
- paginationSchema.extend({
911
- branchId: uuidSchema,
912
- search: import_zod2.z.string().optional(),
913
- departmentId: uuidSchema.optional()
914
- })
915
- ).output(import_zod2.z.object({ data: import_zod2.z.array(staffSchema), total: import_zod2.z.number() })),
916
- get: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema })).output(staffSchema),
917
- create: import_contract.oc.input(
918
- staffSchema.omit({ id: true }).partial({
919
- contractEnd: true,
920
- tscNumber: true,
921
- kraPin: true,
922
- nhifNo: true,
923
- nssfNo: true,
924
- bankName: true,
925
- bankAccount: true,
926
- departmentId: true
927
- })
928
- ).output(staffSchema)
929
- },
930
- leave: {
931
- request: import_contract.oc.input(leaveRequestInputSchema).output(import_zod2.z.object({ id: uuidSchema })),
932
- list: import_contract.oc.input(
933
- import_zod2.z.object({
934
- branchId: uuidSchema,
935
- staffId: uuidSchema.optional(),
936
- status: leaveStatusEnum.optional()
937
- })
938
- ).output(import_zod2.z.array(import_zod2.z.any())),
939
- approve: import_contract.oc.input(
940
- import_zod2.z.object({
941
- id: uuidSchema,
942
- approved: import_zod2.z.boolean(),
943
- comment: import_zod2.z.string().optional()
944
- })
945
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
946
- },
947
- attendance: {
948
- mark: import_contract.oc.input(
949
- import_zod2.z.object({
950
- staffId: uuidSchema,
951
- date: import_zod2.z.string(),
952
- checkIn: import_zod2.z.string().optional(),
953
- checkOut: import_zod2.z.string().optional(),
954
- status: import_zod2.z.enum(["present", "absent", "late", "half_day"])
955
- })
956
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
957
- getSummary: import_contract.oc.input(
958
- import_zod2.z.object({ staffId: uuidSchema, month: import_zod2.z.number(), year: import_zod2.z.number() })
959
- ).output(
960
- import_zod2.z.object({
961
- presentDays: import_zod2.z.number(),
962
- absentDays: import_zod2.z.number(),
963
- lateDays: import_zod2.z.number()
964
- })
965
- )
966
- }
967
- };
968
- var payrollContract = {
969
- runs: {
970
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema, year: import_zod2.z.number().optional() })).output(
971
- import_zod2.z.array(
972
- import_zod2.z.object({
973
- id: uuidSchema,
974
- month: import_zod2.z.number(),
975
- year: import_zod2.z.number(),
976
- status: payrollRunStatusEnum,
977
- netTotal: import_zod2.z.number()
978
- })
979
- )
980
- ),
981
- initiate: import_contract.oc.input(
982
- import_zod2.z.object({ branchId: uuidSchema, month: import_zod2.z.number(), year: import_zod2.z.number() })
983
- ).output(import_zod2.z.object({ id: uuidSchema, preview: import_zod2.z.array(import_zod2.z.any()) })),
984
- approve: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema })).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
985
- getPayslip: import_contract.oc.input(import_zod2.z.object({ payrollRunId: uuidSchema, staffId: uuidSchema })).output(import_zod2.z.object({ url: import_zod2.z.string() }))
986
- }
987
- };
988
- var transportContract = {
989
- vehicles: {
990
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(vehicleSchema)),
991
- create: import_contract.oc.input(
992
- import_zod2.z.object({
993
- branchId: uuidSchema,
994
- plateNo: import_zod2.z.string().min(1),
995
- type: vehicleTypeEnum,
996
- ownershipType: vehicleOwnershipEnum,
997
- make: import_zod2.z.string().optional(),
998
- model: import_zod2.z.string().optional(),
999
- capacity: import_zod2.z.number().int().positive().optional(),
1000
- insuranceExpiry: import_zod2.z.string().optional(),
1001
- inspectionDate: import_zod2.z.string().optional(),
1002
- driverUserId: uuidSchema.optional()
1003
- })
1004
- ).output(vehicleSchema),
1005
- updateStatus: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema, status: vehicleStatusEnum })).output(vehicleSchema)
1006
- },
1007
- routes: {
1008
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(routeSchema)),
1009
- create: import_contract.oc.input(
1010
- import_zod2.z.object({
1011
- branchId: uuidSchema,
1012
- name: import_zod2.z.string().min(1),
1013
- description: import_zod2.z.string().optional(),
1014
- stops: import_zod2.z.array(
1015
- import_zod2.z.object({
1016
- stopName: import_zod2.z.string().min(1),
1017
- stopOrder: import_zod2.z.number().int(),
1018
- estimatedTime: import_zod2.z.string().optional()
1019
- })
1020
- ).optional()
1021
- })
1022
- ).output(routeSchema),
1023
- toggle: import_contract.oc.input(import_zod2.z.object({ id: uuidSchema, isActive: import_zod2.z.boolean() })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1024
- },
1025
- trips: {
1026
- list: import_contract.oc.input(
1027
- import_zod2.z.object({
1028
- branchId: uuidSchema,
1029
- date: import_zod2.z.string().optional(),
1030
- vehicleId: uuidSchema.optional()
1031
- })
1032
- ).output(import_zod2.z.array(tripLogSchema)),
1033
- get: import_contract.oc.input(import_zod2.z.object({ tripId: uuidSchema })).output(
1034
- tripLogSchema.extend({
1035
- boardings: import_zod2.z.array(
1036
- import_zod2.z.object({
1037
- studentId: uuidSchema,
1038
- studentName: import_zod2.z.string(),
1039
- status: busRegisterStatusEnum,
1040
- recordedAt: import_zod2.z.string().datetime()
1041
- })
1042
- )
1043
- })
1044
- ),
1045
- start: import_contract.oc.input(tripLogInputSchema).output(import_zod2.z.object({ id: uuidSchema })),
1046
- recordBoardings: import_contract.oc.input(
1047
- import_zod2.z.object({
1048
- tripId: uuidSchema,
1049
- entries: import_zod2.z.array(busRegisterEntrySchema)
1050
- })
1051
- ).output(import_zod2.z.object({ saved: import_zod2.z.number() })),
1052
- complete: import_contract.oc.input(
1053
- import_zod2.z.object({ tripId: uuidSchema, arrivalTime: import_zod2.z.string().datetime() })
1054
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1055
- reportIncident: import_contract.oc.input(
1056
- import_zod2.z.object({
1057
- tripId: uuidSchema,
1058
- description: import_zod2.z.string(),
1059
- severity: incidentSeverityEnum,
1060
- location: import_zod2.z.string().optional()
1061
- })
1062
- ).output(import_zod2.z.object({ id: uuidSchema }))
1063
- },
1064
- maintenance: {
1065
- log: import_contract.oc.input(
1066
- import_zod2.z.object({
1067
- vehicleId: uuidSchema,
1068
- issue: import_zod2.z.string(),
1069
- severity: import_zod2.z.enum(["routine", "urgent", "critical"])
1070
- })
1071
- ).output(import_zod2.z.object({ id: uuidSchema })),
1072
- list: import_contract.oc.input(import_zod2.z.object({ vehicleId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.any())),
1073
- resolve: import_contract.oc.input(
1074
- import_zod2.z.object({
1075
- logId: uuidSchema,
1076
- notes: import_zod2.z.string().optional(),
1077
- cost: import_zod2.z.number().optional()
1078
- })
1079
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1080
- }
1081
- };
1082
- var assetsContract = {
1083
- list: import_contract.oc.input(
1084
- paginationSchema.extend({
1085
- branchId: uuidSchema,
1086
- category: assetCategoryEnum.optional(),
1087
- search: import_zod2.z.string().optional()
1088
- })
1089
- ).output(import_zod2.z.object({ data: import_zod2.z.array(import_zod2.z.any()), total: import_zod2.z.number() })),
1090
- create: import_contract.oc.input(
1091
- import_zod2.z.object({
1092
- name: import_zod2.z.string(),
1093
- category: assetCategoryEnum,
1094
- serialNo: import_zod2.z.string().optional(),
1095
- purchaseDate: import_zod2.z.string(),
1096
- purchaseCost: import_zod2.z.number(),
1097
- supplier: import_zod2.z.string().optional(),
1098
- warrantyExpiry: import_zod2.z.string().optional(),
1099
- condition: assetConditionEnum,
1100
- depreciationRate: import_zod2.z.number().min(0).max(100)
1101
- })
1102
- ).output(import_zod2.z.object({ id: uuidSchema })),
1103
- assign: import_contract.oc.input(
1104
- import_zod2.z.object({
1105
- assetId: uuidSchema,
1106
- staffId: uuidSchema.optional(),
1107
- room: import_zod2.z.string().optional()
1108
- })
1109
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() })),
1110
- ticket: {
1111
- create: import_contract.oc.input(
1112
- import_zod2.z.object({
1113
- assetId: uuidSchema,
1114
- description: import_zod2.z.string(),
1115
- severity: import_zod2.z.string()
1116
- })
1117
- ).output(import_zod2.z.object({ id: uuidSchema })),
1118
- update: import_contract.oc.input(
1119
- import_zod2.z.object({
1120
- ticketId: uuidSchema,
1121
- status: maintenanceTicketStatusEnum,
1122
- notes: import_zod2.z.string().optional(),
1123
- cost: import_zod2.z.number().optional()
1124
- })
1125
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1126
- }
1127
- };
1128
- var libraryContract = {
1129
- books: {
1130
- list: import_contract.oc.input(
1131
- paginationSchema.extend({
1132
- branchId: uuidSchema,
1133
- search: import_zod2.z.string().optional(),
1134
- available: import_zod2.z.boolean().optional()
1135
- })
1136
- ).output(import_zod2.z.object({ data: import_zod2.z.array(import_zod2.z.any()), total: import_zod2.z.number() })),
1137
- create: import_contract.oc.input(
1138
- import_zod2.z.object({
1139
- isbn: import_zod2.z.string(),
1140
- title: import_zod2.z.string(),
1141
- author: import_zod2.z.string(),
1142
- publisher: import_zod2.z.string().optional(),
1143
- year: import_zod2.z.number().optional(),
1144
- subjectArea: import_zod2.z.string().optional(),
1145
- copiesTotal: import_zod2.z.number().min(1),
1146
- shelfLocation: import_zod2.z.string().optional()
1147
- })
1148
- ).output(import_zod2.z.object({ id: uuidSchema }))
1149
- },
1150
- borrowings: {
1151
- checkout: import_contract.oc.input(
1152
- import_zod2.z.object({
1153
- bookId: uuidSchema,
1154
- borrowerType: import_zod2.z.enum(["student", "staff"]),
1155
- borrowerId: uuidSchema,
1156
- dueDate: import_zod2.z.string()
1157
- })
1158
- ).output(import_zod2.z.object({ id: uuidSchema })),
1159
- return: import_contract.oc.input(
1160
- import_zod2.z.object({ borrowingId: uuidSchema, condition: import_zod2.z.string().optional() })
1161
- ).output(import_zod2.z.object({ fine: import_zod2.z.number() })),
1162
- listOverdue: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(import_zod2.z.array(import_zod2.z.any()))
1163
- }
1164
- };
1165
- var disciplineContract = {
1166
- incidents: {
1167
- log: import_contract.oc.input(
1168
- import_zod2.z.object({
1169
- studentId: uuidSchema,
1170
- incidentType: import_zod2.z.string(),
1171
- description: import_zod2.z.string(),
1172
- severity: incidentSeverityEnum,
1173
- incidentDate: import_zod2.z.string(),
1174
- requiresCounsellor: import_zod2.z.boolean().default(false)
1175
- })
1176
- ).output(import_zod2.z.object({ id: uuidSchema })),
1177
- list: import_contract.oc.input(
1178
- paginationSchema.extend({
1179
- branchId: uuidSchema,
1180
- studentId: uuidSchema.optional(),
1181
- status: incidentStatusEnum.optional()
1182
- })
1183
- ).output(import_zod2.z.object({ data: import_zod2.z.array(import_zod2.z.any()), total: import_zod2.z.number() })),
1184
- rule: import_contract.oc.input(
1185
- import_zod2.z.object({
1186
- incidentId: uuidSchema,
1187
- ruling: disciplineRulingEnum,
1188
- suspensionDays: import_zod2.z.number().optional(),
1189
- notes: import_zod2.z.string()
1190
- })
1191
- ).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1192
- }
1193
- };
1194
- var commsContract = {
1195
- notifications: {
1196
- list: import_contract.oc.input(paginationSchema.extend({ unreadOnly: import_zod2.z.boolean().optional() })).output(import_zod2.z.object({ data: import_zod2.z.array(import_zod2.z.any()), unreadCount: import_zod2.z.number() })),
1197
- markRead: import_contract.oc.input(import_zod2.z.object({ ids: import_zod2.z.array(uuidSchema) })).output(import_zod2.z.object({ updated: import_zod2.z.number() }))
1198
- },
1199
- messages: {
1200
- list: import_contract.oc.input(paginationSchema).output(import_zod2.z.array(import_zod2.z.any())),
1201
- send: import_contract.oc.input(
1202
- import_zod2.z.object({
1203
- recipientId: uuidSchema,
1204
- subject: import_zod2.z.string(),
1205
- body: import_zod2.z.string(),
1206
- parentId: uuidSchema.optional()
1207
- })
1208
- ).output(import_zod2.z.object({ id: uuidSchema }))
1209
- },
1210
- sms: {
1211
- send: import_contract.oc.input(sendBulkSmsInputSchema).output(import_zod2.z.object({ queued: import_zod2.z.number() }))
1212
- },
1213
- notices: {
1214
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema, active: import_zod2.z.boolean().optional() })).output(import_zod2.z.array(import_zod2.z.any())),
1215
- create: import_contract.oc.input(
1216
- import_zod2.z.object({
1217
- title: import_zod2.z.string(),
1218
- body: import_zod2.z.string(),
1219
- audienceType: import_zod2.z.string(),
1220
- audienceIds: import_zod2.z.array(uuidSchema).optional(),
1221
- publishAt: import_zod2.z.string().optional(),
1222
- expiresAt: import_zod2.z.string().optional()
1223
- })
1224
- ).output(import_zod2.z.object({ id: uuidSchema }))
1225
- }
1226
- };
1227
- var adminContract = {
1228
- auditLogs: {
1229
- list: import_contract.oc.input(
1230
- paginationSchema.extend({
1231
- branchId: uuidSchema.optional(),
1232
- userId: uuidSchema.optional(),
1233
- action: import_zod2.z.string().optional(),
1234
- from: import_zod2.z.string().optional(),
1235
- to: import_zod2.z.string().optional()
1236
- })
1237
- ).output(import_zod2.z.object({ data: import_zod2.z.array(import_zod2.z.any()), total: import_zod2.z.number() }))
1238
- },
1239
- users: {
1240
- create: import_contract.oc.input(
1241
- import_zod2.z.object({
1242
- firstName: import_zod2.z.string(),
1243
- middleName: import_zod2.z.string().optional(),
1244
- lastName: import_zod2.z.string(),
1245
- email: import_zod2.z.string().email(),
1246
- phone: import_zod2.z.string().optional(),
1247
- roleId: uuidSchema,
1248
- branchId: uuidSchema,
1249
- temporaryPassword: import_zod2.z.string().min(8)
1250
- })
1251
- ).output(import_zod2.z.object({ id: uuidSchema })),
1252
- suspend: import_contract.oc.input(import_zod2.z.object({ userId: uuidSchema, reason: import_zod2.z.string() })).output(import_zod2.z.object({ success: import_zod2.z.boolean() }))
1253
- },
1254
- roles: {
1255
- list: import_contract.oc.input(import_zod2.z.object({ branchId: uuidSchema })).output(
1256
- import_zod2.z.array(
1257
- import_zod2.z.object({
1258
- id: uuidSchema,
1259
- name: import_zod2.z.string(),
1260
- isSystem: import_zod2.z.boolean(),
1261
- permissionCount: import_zod2.z.number()
1262
- })
1263
- )
1264
- ),
1265
- create: import_contract.oc.input(
1266
- import_zod2.z.object({
1267
- name: import_zod2.z.string(),
1268
- description: import_zod2.z.string().optional(),
1269
- permissionIds: import_zod2.z.array(uuidSchema)
1270
- })
1271
- ).output(import_zod2.z.object({ id: uuidSchema }))
1272
- }
1273
- };
1274
- var storageContract = {
1275
- presignUpload: import_contract.oc.input(
1276
- import_zod2.z.object({
1277
- fileName: import_zod2.z.string(),
1278
- mimeType: import_zod2.z.string(),
1279
- category: import_zod2.z.enum([
1280
- "student_photo",
1281
- "staff_photo",
1282
- "document",
1283
- "payslip",
1284
- "report_card",
1285
- "asset_photo",
1286
- "notice_attachment"
1287
- ]),
1288
- resourceId: uuidSchema.optional()
1289
- })
1290
- ).output(
1291
- import_zod2.z.object({
1292
- uploadUrl: import_zod2.z.string(),
1293
- fileKey: import_zod2.z.string(),
1294
- expiresIn: import_zod2.z.number()
1295
- })
1296
- ),
1297
- confirmUpload: import_contract.oc.input(
1298
- import_zod2.z.object({
1299
- fileKey: import_zod2.z.string(),
1300
- resourceId: uuidSchema,
1301
- resourceType: import_zod2.z.string()
1302
- })
1303
- ).output(import_zod2.z.object({ publicUrl: import_zod2.z.string() }))
1304
- };
1305
- var appContract = {
1306
- auth: authContract,
1307
- branches: branchesContract,
1308
- students: studentsContract,
1309
- academics: academicsContract,
1310
- finance: financeContract,
1311
- hr: hrContract,
1312
- payroll: payrollContract,
1313
- transport: transportContract,
1314
- assets: assetsContract,
1315
- library: libraryContract,
1316
- discipline: disciplineContract,
1317
- comms: commsContract,
1318
- admin: adminContract,
1319
- storage: storageContract
1320
- };
1321
- // Annotate the CommonJS export names for ESM import in node:
1322
- 0 && (module.exports = {
1323
- academicsContract,
1324
- adminContract,
1325
- appContract,
1326
- assessmentScoreInputSchema,
1327
- assessmentTypeEnum,
1328
- assetCategoryEnum,
1329
- assetConditionEnum,
1330
- assetsContract,
1
+ import "./chunk-PCHAGP5X.js";
2
+ import {
1331
3
  authContract,
1332
- borrowingStatusEnum,
1333
- branchSchema,
1334
- branchesContract,
1335
- busRegisterEntrySchema,
1336
- busRegisterStatusEnum,
1337
- changePasswordInputSchema,
1338
- commsContract,
1339
- createBranchInputSchema,
1340
- createStudentInputSchema,
1341
- dateRangeSchema,
1342
- disciplineContract,
1343
- disciplineRulingEnum,
1344
- employmentTypeEnum,
1345
- feeItemCategoryEnum,
1346
- feeItemSchema,
1347
- financeContract,
1348
- genderEnum,
1349
- gradeLevelEnum,
1350
- guardianSchema,
1351
- hrContract,
1352
- incidentSeverityEnum,
1353
- incidentStatusEnum,
1354
- invoiceStatusEnum,
1355
- leaveRequestInputSchema,
1356
- leaveStatusEnum,
1357
- libraryContract,
1358
- listStudentsInputSchema,
1359
- loginInputSchema,
1360
- loginOutputSchema,
1361
- maintenanceTicketStatusEnum,
1362
- mfaVerifyInputSchema,
1363
- notificationTypeEnum,
1364
- paginationSchema,
1365
- paymentMethodEnum,
1366
- payrollContract,
1367
- payrollRunStatusEnum,
1368
- recordPaymentInputSchema,
1369
- refreshInputSchema,
1370
- refreshTokenOutputSchema,
1371
- reportCardStatusEnum,
1372
- routeSchema,
1373
- rubricBandEnum,
1374
- sendBulkSmsInputSchema,
1375
- sponsorSchema,
1376
- sponsorTypeEnum,
1377
- staffSchema,
1378
- storageContract,
1379
- studentSchema,
1380
- studentStatusEnum,
1381
- studentsContract,
1382
- subjectSchema,
1383
- systemRoleEnum,
1384
- transportContract,
1385
- tripLogInputSchema,
1386
- tripLogSchema,
1387
- userSchema,
1388
- userStatusEnum,
1389
- uuidSchema,
1390
- vehicleOwnershipEnum,
1391
- vehicleSchema,
1392
- vehicleStatusEnum,
1393
- vehicleTypeEnum
1394
- });
4
+ changePasswordContract,
5
+ getMeContract,
6
+ loginContract,
7
+ logoutContract,
8
+ refreshTokenContract,
9
+ requestPasswordResetContract,
10
+ resetPasswordContract,
11
+ switchBranchContract
12
+ } from "./chunk-IR6JUP6L.js";
13
+ import {
14
+ BranchRefSchema,
15
+ ChangePasswordInputSchema,
16
+ CuidSchema,
17
+ LoginInputSchema,
18
+ LoginOutputSchema,
19
+ LogoutInputSchema,
20
+ PaginationInputSchema,
21
+ RefreshTokenInputSchema,
22
+ RefreshTokenOutputSchema,
23
+ RequestPasswordResetInputSchema,
24
+ ResetPasswordInputSchema,
25
+ SessionUserOutputSchema,
26
+ SessionUserRoleSchema,
27
+ SessionUserSubRoleSchema,
28
+ SoftDeleteSchema,
29
+ SwitchBranchInputSchema,
30
+ TimestampsSchema,
31
+ UuidSchema,
32
+ paginatedOutputSchema
33
+ } from "./chunk-AEZO7MJD.js";
34
+ export {
35
+ BranchRefSchema,
36
+ ChangePasswordInputSchema,
37
+ CuidSchema,
38
+ LoginInputSchema,
39
+ LoginOutputSchema,
40
+ LogoutInputSchema,
41
+ PaginationInputSchema,
42
+ RefreshTokenInputSchema,
43
+ RefreshTokenOutputSchema,
44
+ RequestPasswordResetInputSchema,
45
+ ResetPasswordInputSchema,
46
+ SessionUserOutputSchema,
47
+ SessionUserRoleSchema,
48
+ SessionUserSubRoleSchema,
49
+ SoftDeleteSchema,
50
+ SwitchBranchInputSchema,
51
+ TimestampsSchema,
52
+ UuidSchema,
53
+ authContract,
54
+ changePasswordContract,
55
+ getMeContract,
56
+ loginContract,
57
+ logoutContract,
58
+ paginatedOutputSchema,
59
+ refreshTokenContract,
60
+ requestPasswordResetContract,
61
+ resetPasswordContract,
62
+ switchBranchContract
63
+ };
1395
64
  //# sourceMappingURL=index.js.map