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