@brite-future-schools-contracts/contracts 2.0.28 → 2.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2B5AQI2I.js +374 -0
- package/dist/chunk-2B5AQI2I.js.map +1 -0
- package/dist/{chunk-CL7UHAQE.js → chunk-7AJ4LRST.js} +366 -10
- package/dist/chunk-7AJ4LRST.js.map +1 -0
- package/dist/chunk-W3NAS6DL.js +1 -0
- package/dist/contracts/index.cjs +498 -0
- package/dist/contracts/index.cjs.map +1 -1
- package/dist/contracts/index.d.cts +2082 -1
- package/dist/contracts/index.d.ts +2082 -1
- package/dist/contracts/index.js +84 -2
- package/dist/index.cjs +617 -39
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +171 -3
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.cjs +408 -9
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.d.cts +544 -1
- package/dist/schemas/index.d.ts +544 -1
- package/dist/schemas/index.js +88 -2
- package/package.json +1 -1
- package/dist/chunk-CL7UHAQE.js.map +0 -1
- package/dist/chunk-NCAGCDZV.js +0 -1
- package/dist/chunk-YKK4SQI7.js +0 -204
- package/dist/chunk-YKK4SQI7.js.map +0 -1
- /package/dist/{chunk-NCAGCDZV.js.map → chunk-W3NAS6DL.js.map} +0 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AcademicTermSchema,
|
|
3
|
+
AcademicYearSchema,
|
|
4
|
+
AcknowledgeDeliveryInputSchema,
|
|
5
|
+
AcknowledgeDiaryEntryInputSchema,
|
|
6
|
+
BranchBankAccountSchema,
|
|
7
|
+
BulkUploadStudentsInputSchema,
|
|
8
|
+
BulkUploadStudentsOutputSchema,
|
|
9
|
+
ChangePasswordInputSchema,
|
|
10
|
+
ClassAttendanceRowSchema,
|
|
11
|
+
ClassSummarySchema,
|
|
12
|
+
CreateBankAccountInputSchema,
|
|
13
|
+
CreateDepartmentInputSchema,
|
|
14
|
+
CreateDiaryCategoryInputSchema,
|
|
15
|
+
CreateDiaryEntryInputSchema,
|
|
16
|
+
CreateGradeInputSchema,
|
|
17
|
+
CreateNotificationInputSchema,
|
|
18
|
+
CreateStaffInputSchema,
|
|
19
|
+
CreateStaffOutputSchema,
|
|
20
|
+
CreateStudentInputSchema,
|
|
21
|
+
CreateStudentOutputSchema,
|
|
22
|
+
CreateTermInputSchema,
|
|
23
|
+
CreateYearInputSchema,
|
|
24
|
+
DepartmentSchema,
|
|
25
|
+
DiaryAcknowledgementSchema,
|
|
26
|
+
DiaryBlockIdInputSchema,
|
|
27
|
+
DiaryBlockSchema,
|
|
28
|
+
DiaryCategorySchema,
|
|
29
|
+
DiaryEntryDetailSchema,
|
|
30
|
+
DiaryEntryForGuardianSchema,
|
|
31
|
+
DiaryEntrySchema,
|
|
32
|
+
GetByClassInputSchema,
|
|
33
|
+
GetByStudentInputSchema,
|
|
34
|
+
GradeSchema,
|
|
35
|
+
KenyanBankSchema,
|
|
36
|
+
LinkGuardianInputSchema,
|
|
37
|
+
ListBankAccountsInputSchema,
|
|
38
|
+
ListDeliveriesInputSchema,
|
|
39
|
+
ListDiaryAcknowledgementsInputSchema,
|
|
40
|
+
ListDiaryEntriesInputSchema,
|
|
41
|
+
ListNotificationTemplatesInputSchema,
|
|
42
|
+
ListStaffInputSchema,
|
|
43
|
+
ListStudentsInputSchema,
|
|
44
|
+
ListTermsInputSchema,
|
|
45
|
+
LoginInputSchema,
|
|
46
|
+
LoginOutputSchema,
|
|
47
|
+
LogoutInputSchema,
|
|
48
|
+
MarkAttendanceInputSchema,
|
|
49
|
+
MarkAttendanceOutputSchema,
|
|
50
|
+
NotificationDeliverySchema,
|
|
51
|
+
NotificationResponseItemSchema,
|
|
52
|
+
NotificationTemplateSchema,
|
|
53
|
+
PortalBlockSchema,
|
|
54
|
+
RefreshTokenInputSchema,
|
|
55
|
+
RefreshTokenOutputSchema,
|
|
56
|
+
RejectNotificationInputSchema,
|
|
57
|
+
RequestPasswordResetInputSchema,
|
|
58
|
+
ResetPasswordInputSchema,
|
|
59
|
+
RespondToBlockInputSchema,
|
|
60
|
+
RespondToBlockOutputSchema,
|
|
61
|
+
RespondToDeliveryInputSchema,
|
|
62
|
+
RespondToDiaryEntryInputSchema,
|
|
63
|
+
ResponseSummarySchema,
|
|
64
|
+
SessionUserOutputSchema,
|
|
65
|
+
SetCurrentTermInputSchema,
|
|
66
|
+
SetCurrentYearInputSchema,
|
|
67
|
+
StaffListItemSchema,
|
|
68
|
+
StaffProfileSchema,
|
|
69
|
+
StudentAttendanceRowSchema,
|
|
70
|
+
StudentListItemSchema,
|
|
71
|
+
StudentProfileSchema,
|
|
72
|
+
SwitchBranchInputSchema,
|
|
73
|
+
TermSchema,
|
|
74
|
+
UpdateBankAccountInputSchema,
|
|
75
|
+
UpdateDiaryCategoryInputSchema,
|
|
76
|
+
UuidSchema
|
|
77
|
+
} from "./chunk-7AJ4LRST.js";
|
|
78
|
+
|
|
79
|
+
// src/contracts/auth.ts
|
|
80
|
+
import { oc } from "@orpc/contract";
|
|
81
|
+
import * as z from "zod";
|
|
82
|
+
var EmptyOutputSchema = z.object({}).meta({ description: "Empty success response" });
|
|
83
|
+
var loginContract = oc.route({ method: "POST", path: "/auth/login" }).input(LoginInputSchema).output(LoginOutputSchema);
|
|
84
|
+
var refreshTokenContract = oc.route({ method: "POST", path: "/auth/refresh" }).input(RefreshTokenInputSchema).output(RefreshTokenOutputSchema);
|
|
85
|
+
var logoutContract = oc.route({ method: "POST", path: "/auth/logout" }).input(LogoutInputSchema).output(EmptyOutputSchema);
|
|
86
|
+
var getMeContract = oc.route({ method: "GET", path: "/auth/me" }).output(SessionUserOutputSchema);
|
|
87
|
+
var changePasswordContract = oc.route({ method: "POST", path: "/auth/change-password" }).input(ChangePasswordInputSchema).output(EmptyOutputSchema);
|
|
88
|
+
var requestPasswordResetContract = oc.route({ method: "POST", path: "/auth/request-password-reset" }).input(RequestPasswordResetInputSchema).output(EmptyOutputSchema);
|
|
89
|
+
var resetPasswordContract = oc.route({ method: "POST", path: "/auth/reset-password" }).input(ResetPasswordInputSchema).output(EmptyOutputSchema);
|
|
90
|
+
var switchBranchContract = oc.route({ method: "POST", path: "/auth/switch-branch" }).input(SwitchBranchInputSchema).output(SessionUserOutputSchema);
|
|
91
|
+
var authContract = {
|
|
92
|
+
login: loginContract,
|
|
93
|
+
refreshToken: refreshTokenContract,
|
|
94
|
+
logout: logoutContract,
|
|
95
|
+
me: getMeContract,
|
|
96
|
+
changePassword: changePasswordContract,
|
|
97
|
+
requestPasswordReset: requestPasswordResetContract,
|
|
98
|
+
resetPassword: resetPasswordContract,
|
|
99
|
+
switchBranch: switchBranchContract
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// src/contracts/hr.ts
|
|
103
|
+
import { oc as oc2 } from "@orpc/contract";
|
|
104
|
+
import * as z2 from "zod";
|
|
105
|
+
var EmptyOutput = z2.object({});
|
|
106
|
+
var createStaffContract = oc2.route({ method: "POST", path: "/hr/staff" }).input(CreateStaffInputSchema).output(CreateStaffOutputSchema);
|
|
107
|
+
var listStaffContract = oc2.route({ method: "GET", path: "/hr/staff" }).input(ListStaffInputSchema).output(z2.object({
|
|
108
|
+
items: z2.array(StaffListItemSchema),
|
|
109
|
+
total: z2.number(),
|
|
110
|
+
nextCursor: UuidSchema.nullable()
|
|
111
|
+
}));
|
|
112
|
+
var getStaffByIdContract = oc2.route({ method: "GET", path: "/hr/staff/{id}" }).input(z2.object({ id: UuidSchema })).output(StaffProfileSchema);
|
|
113
|
+
var updateStaffStatusContract = oc2.route({ method: "PATCH", path: "/hr/staff/{id}/status" }).input(z2.object({
|
|
114
|
+
id: UuidSchema,
|
|
115
|
+
status: z2.enum(["active", "inactive", "suspended"])
|
|
116
|
+
})).output(EmptyOutput);
|
|
117
|
+
var listDepartmentsContract = oc2.route({ method: "GET", path: "/hr/departments" }).input(z2.object({ branchId: UuidSchema.optional() })).output(z2.array(DepartmentSchema));
|
|
118
|
+
var createDepartmentContract = oc2.route({ method: "POST", path: "/hr/departments" }).input(CreateDepartmentInputSchema).output(DepartmentSchema);
|
|
119
|
+
var hrContract = {
|
|
120
|
+
createStaff: createStaffContract,
|
|
121
|
+
listStaff: listStaffContract,
|
|
122
|
+
getStaffById: getStaffByIdContract,
|
|
123
|
+
updateStaffStatus: updateStaffStatusContract,
|
|
124
|
+
listDepartments: listDepartmentsContract,
|
|
125
|
+
createDepartment: createDepartmentContract
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// src/contracts/students.ts
|
|
129
|
+
import { oc as oc3 } from "@orpc/contract";
|
|
130
|
+
import * as z3 from "zod";
|
|
131
|
+
var EmptyOutput2 = z3.object({});
|
|
132
|
+
var createStudentContract = oc3.route({ method: "POST", path: "/students" }).input(CreateStudentInputSchema).output(CreateStudentOutputSchema);
|
|
133
|
+
var bulkUploadStudentsContract = oc3.route({ method: "POST", path: "/students/bulk" }).input(BulkUploadStudentsInputSchema).output(BulkUploadStudentsOutputSchema);
|
|
134
|
+
var listStudentsContract = oc3.route({ method: "GET", path: "/students" }).input(ListStudentsInputSchema).output(z3.object({
|
|
135
|
+
items: z3.array(StudentListItemSchema),
|
|
136
|
+
total: z3.number(),
|
|
137
|
+
nextCursor: UuidSchema.nullable()
|
|
138
|
+
}));
|
|
139
|
+
var getStudentByIdContract = oc3.route({ method: "GET", path: "/students/{id}" }).input(z3.object({ id: UuidSchema })).output(StudentProfileSchema);
|
|
140
|
+
var linkGuardianContract = oc3.route({ method: "POST", path: "/students/guardians" }).input(LinkGuardianInputSchema).output(z3.object({ guardianId: UuidSchema }));
|
|
141
|
+
var listClassesContract = oc3.route({ method: "GET", path: "/students/classes" }).input(z3.object({
|
|
142
|
+
termId: UuidSchema.optional(),
|
|
143
|
+
gradeLevel: z3.string().optional()
|
|
144
|
+
})).output(z3.array(ClassSummarySchema));
|
|
145
|
+
var studentsContract = {
|
|
146
|
+
create: createStudentContract,
|
|
147
|
+
bulkUpload: bulkUploadStudentsContract,
|
|
148
|
+
list: listStudentsContract,
|
|
149
|
+
getById: getStudentByIdContract,
|
|
150
|
+
linkGuardian: linkGuardianContract,
|
|
151
|
+
listClasses: listClassesContract
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// src/contracts/attendance.ts
|
|
155
|
+
import { oc as oc4 } from "@orpc/contract";
|
|
156
|
+
import * as z4 from "zod";
|
|
157
|
+
var markAttendanceContract = oc4.route({ method: "POST", path: "/attendance/class/mark" }).input(MarkAttendanceInputSchema).output(MarkAttendanceOutputSchema);
|
|
158
|
+
var getByClassContract = oc4.route({ method: "GET", path: "/attendance/class" }).input(GetByClassInputSchema).output(z4.array(ClassAttendanceRowSchema));
|
|
159
|
+
var getByStudentContract = oc4.route({ method: "GET", path: "/attendance/student" }).input(GetByStudentInputSchema).output(z4.array(StudentAttendanceRowSchema));
|
|
160
|
+
var listTermsContract = oc4.route({ method: "GET", path: "/terms" }).input(z4.object({})).output(z4.array(TermSchema));
|
|
161
|
+
var attendanceContract = {
|
|
162
|
+
mark: markAttendanceContract,
|
|
163
|
+
getByClass: getByClassContract,
|
|
164
|
+
getByStudent: getByStudentContract,
|
|
165
|
+
listTerms: listTermsContract
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// src/contracts/calendar.ts
|
|
169
|
+
import { oc as oc5 } from "@orpc/contract";
|
|
170
|
+
import * as z5 from "zod";
|
|
171
|
+
var listYearsContract = oc5.route({ method: "GET", path: "/calendar/years" }).input(z5.object({})).output(z5.array(AcademicYearSchema));
|
|
172
|
+
var createYearContract = oc5.route({ method: "POST", path: "/calendar/years" }).input(CreateYearInputSchema).output(AcademicYearSchema);
|
|
173
|
+
var setCurrentYearContract = oc5.route({ method: "POST", path: "/calendar/years/current" }).input(SetCurrentYearInputSchema).output(AcademicYearSchema);
|
|
174
|
+
var calendarListTermsContract = oc5.route({ method: "GET", path: "/calendar/terms" }).input(ListTermsInputSchema).output(z5.array(AcademicTermSchema));
|
|
175
|
+
var createTermContract = oc5.route({ method: "POST", path: "/calendar/terms" }).input(CreateTermInputSchema).output(AcademicTermSchema);
|
|
176
|
+
var setCurrentTermContract = oc5.route({ method: "POST", path: "/calendar/terms/current" }).input(SetCurrentTermInputSchema).output(AcademicTermSchema);
|
|
177
|
+
var calendarContract = {
|
|
178
|
+
listYears: listYearsContract,
|
|
179
|
+
createYear: createYearContract,
|
|
180
|
+
setCurrentYear: setCurrentYearContract,
|
|
181
|
+
listTerms: calendarListTermsContract,
|
|
182
|
+
createTerm: createTermContract,
|
|
183
|
+
setCurrentTerm: setCurrentTermContract
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
// src/contracts/grades.ts
|
|
187
|
+
import { oc as oc6 } from "@orpc/contract";
|
|
188
|
+
import * as z6 from "zod";
|
|
189
|
+
var listGradesContract = oc6.route({ method: "GET", path: "/grades" }).input(z6.object({})).output(z6.array(GradeSchema));
|
|
190
|
+
var createGradeContract = oc6.route({ method: "POST", path: "/grades" }).input(CreateGradeInputSchema).output(GradeSchema);
|
|
191
|
+
var gradesContract = {
|
|
192
|
+
list: listGradesContract,
|
|
193
|
+
create: createGradeContract
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// src/contracts/diary.ts
|
|
197
|
+
import { oc as oc7 } from "@orpc/contract";
|
|
198
|
+
import * as z7 from "zod";
|
|
199
|
+
var IdInput = z7.object({ id: UuidSchema });
|
|
200
|
+
var listCategoriesContract = oc7.route({ method: "GET", path: "/diary/categories" }).input(z7.object({})).output(z7.array(DiaryCategorySchema));
|
|
201
|
+
var createCategoryContract = oc7.route({ method: "POST", path: "/diary/categories" }).input(CreateDiaryCategoryInputSchema).output(DiaryCategorySchema);
|
|
202
|
+
var updateCategoryContract = oc7.route({ method: "PATCH", path: "/diary/categories/{id}" }).input(UpdateDiaryCategoryInputSchema).output(DiaryCategorySchema);
|
|
203
|
+
var listEntriesContract = oc7.route({ method: "GET", path: "/diary/entries" }).input(ListDiaryEntriesInputSchema).output(z7.array(DiaryEntrySchema));
|
|
204
|
+
var listForGuardianContract = oc7.route({ method: "GET", path: "/diary/entries/guardian" }).input(z7.object({})).output(z7.array(DiaryEntryForGuardianSchema));
|
|
205
|
+
var getEntryContract = oc7.route({ method: "GET", path: "/diary/entries/{id}" }).input(IdInput).output(DiaryEntryDetailSchema);
|
|
206
|
+
var createEntryContract = oc7.route({ method: "POST", path: "/diary/entries" }).input(CreateDiaryEntryInputSchema).output(DiaryEntrySchema);
|
|
207
|
+
var acknowledgeDiaryEntryContract = oc7.route({ method: "PATCH", path: "/diary/entries/{entryId}/acknowledge" }).input(AcknowledgeDiaryEntryInputSchema).output(DiaryAcknowledgementSchema);
|
|
208
|
+
var respondToDiaryEntryContract = oc7.route({ method: "PATCH", path: "/diary/entries/{entryId}/respond" }).input(RespondToDiaryEntryInputSchema).output(DiaryAcknowledgementSchema);
|
|
209
|
+
var requestLiftContract = oc7.route({ method: "PATCH", path: "/diary/blocks/{blockId}/request-lift" }).input(DiaryBlockIdInputSchema).output(DiaryBlockSchema);
|
|
210
|
+
var approveLiftContract = oc7.route({ method: "PATCH", path: "/diary/blocks/{blockId}/approve-lift" }).input(DiaryBlockIdInputSchema).output(DiaryBlockSchema);
|
|
211
|
+
var listAcknowledgementsContract = oc7.route({ method: "GET", path: "/diary/entries/{entryId}/acknowledgements" }).input(ListDiaryAcknowledgementsInputSchema).output(z7.array(DiaryAcknowledgementSchema));
|
|
212
|
+
var diaryContract = {
|
|
213
|
+
listCategories: listCategoriesContract,
|
|
214
|
+
createCategory: createCategoryContract,
|
|
215
|
+
updateCategory: updateCategoryContract,
|
|
216
|
+
listEntries: listEntriesContract,
|
|
217
|
+
listForGuardian: listForGuardianContract,
|
|
218
|
+
getEntry: getEntryContract,
|
|
219
|
+
createEntry: createEntryContract,
|
|
220
|
+
acknowledge: acknowledgeDiaryEntryContract,
|
|
221
|
+
respond: respondToDiaryEntryContract,
|
|
222
|
+
requestLift: requestLiftContract,
|
|
223
|
+
approveLift: approveLiftContract,
|
|
224
|
+
listAcknowledgements: listAcknowledgementsContract
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
// src/contracts/banking.ts
|
|
228
|
+
import { oc as oc8 } from "@orpc/contract";
|
|
229
|
+
import * as z8 from "zod";
|
|
230
|
+
var listAccountsContract = oc8.route({ method: "GET", path: "/banking/accounts" }).input(ListBankAccountsInputSchema).output(z8.array(BranchBankAccountSchema));
|
|
231
|
+
var getByIdContract = oc8.route({ method: "GET", path: "/banking/accounts/{id}" }).input(z8.object({ id: UuidSchema })).output(BranchBankAccountSchema);
|
|
232
|
+
var createBankAccountContract = oc8.route({ method: "POST", path: "/banking/accounts" }).input(CreateBankAccountInputSchema).output(BranchBankAccountSchema);
|
|
233
|
+
var updateBankAccountContract = oc8.route({ method: "PATCH", path: "/banking/accounts/{id}" }).input(UpdateBankAccountInputSchema).output(BranchBankAccountSchema);
|
|
234
|
+
var setDefaultContract = oc8.route({ method: "PATCH", path: "/banking/accounts/{id}/default" }).input(z8.object({ id: UuidSchema })).output(BranchBankAccountSchema);
|
|
235
|
+
var deactivateContract = oc8.route({ method: "PATCH", path: "/banking/accounts/{id}/deactivate" }).input(z8.object({ id: UuidSchema })).output(BranchBankAccountSchema);
|
|
236
|
+
var listBanksContract = oc8.route({ method: "GET", path: "/banking/banks" }).input(z8.object({})).output(z8.array(KenyanBankSchema));
|
|
237
|
+
var bankingContract = {
|
|
238
|
+
listAccounts: listAccountsContract,
|
|
239
|
+
getById: getByIdContract,
|
|
240
|
+
create: createBankAccountContract,
|
|
241
|
+
update: updateBankAccountContract,
|
|
242
|
+
setDefault: setDefaultContract,
|
|
243
|
+
deactivate: deactivateContract,
|
|
244
|
+
listBanks: listBanksContract
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
// src/contracts/notifications.ts
|
|
248
|
+
import { oc as oc9 } from "@orpc/contract";
|
|
249
|
+
import * as z9 from "zod";
|
|
250
|
+
var EmptyOutput3 = z9.object({});
|
|
251
|
+
var IdInput2 = z9.object({ id: UuidSchema });
|
|
252
|
+
var listTemplatesContract = oc9.route({ method: "GET", path: "/notifications/templates" }).input(ListNotificationTemplatesInputSchema).output(z9.array(NotificationTemplateSchema));
|
|
253
|
+
var getTemplateContract = oc9.route({ method: "GET", path: "/notifications/templates/{id}" }).input(IdInput2).output(NotificationTemplateSchema);
|
|
254
|
+
var createNotificationContract = oc9.route({ method: "POST", path: "/notifications/templates" }).input(CreateNotificationInputSchema).output(NotificationTemplateSchema);
|
|
255
|
+
var submitContract = oc9.route({ method: "PATCH", path: "/notifications/templates/{id}/submit" }).input(IdInput2).output(NotificationTemplateSchema);
|
|
256
|
+
var approveContract = oc9.route({ method: "PATCH", path: "/notifications/templates/{id}/approve" }).input(IdInput2).output(NotificationTemplateSchema);
|
|
257
|
+
var rejectContract = oc9.route({ method: "PATCH", path: "/notifications/templates/{id}/reject" }).input(RejectNotificationInputSchema).output(NotificationTemplateSchema);
|
|
258
|
+
var cancelContract = oc9.route({ method: "PATCH", path: "/notifications/templates/{id}/cancel" }).input(IdInput2).output(NotificationTemplateSchema);
|
|
259
|
+
var listDeliveriesContract = oc9.route({ method: "GET", path: "/notifications/deliveries" }).input(ListDeliveriesInputSchema).output(z9.array(NotificationDeliverySchema));
|
|
260
|
+
var markReadContract = oc9.route({ method: "PATCH", path: "/notifications/deliveries/{deliveryId}/read" }).input(z9.object({ deliveryId: UuidSchema })).output(NotificationDeliverySchema);
|
|
261
|
+
var markUnreadContract = oc9.route({ method: "PATCH", path: "/notifications/deliveries/{deliveryId}/unread" }).input(z9.object({ deliveryId: UuidSchema })).output(NotificationDeliverySchema);
|
|
262
|
+
var acknowledgeContract = oc9.route({ method: "PATCH", path: "/notifications/deliveries/{deliveryId}/acknowledge" }).input(AcknowledgeDeliveryInputSchema).output(NotificationDeliverySchema);
|
|
263
|
+
var respondContract = oc9.route({ method: "PATCH", path: "/notifications/deliveries/{deliveryId}/respond" }).input(RespondToDeliveryInputSchema).output(NotificationDeliverySchema);
|
|
264
|
+
var getResponseSummaryContract = oc9.route({ method: "GET", path: "/notifications/templates/{id}/response-summary" }).input(IdInput2).output(ResponseSummarySchema);
|
|
265
|
+
var listResponsesContract = oc9.route({ method: "GET", path: "/notifications/templates/{id}/responses" }).input(IdInput2).output(z9.array(NotificationResponseItemSchema));
|
|
266
|
+
var resolveBlockContract = oc9.route({ method: "PATCH", path: "/notifications/blocks/{blockId}/resolve" }).input(z9.object({ blockId: UuidSchema })).output(PortalBlockSchema);
|
|
267
|
+
var notificationsContract = {
|
|
268
|
+
listTemplates: listTemplatesContract,
|
|
269
|
+
getTemplate: getTemplateContract,
|
|
270
|
+
create: createNotificationContract,
|
|
271
|
+
submit: submitContract,
|
|
272
|
+
approve: approveContract,
|
|
273
|
+
reject: rejectContract,
|
|
274
|
+
cancel: cancelContract,
|
|
275
|
+
listDeliveries: listDeliveriesContract,
|
|
276
|
+
markRead: markReadContract,
|
|
277
|
+
markUnread: markUnreadContract,
|
|
278
|
+
acknowledge: acknowledgeContract,
|
|
279
|
+
respond: respondContract,
|
|
280
|
+
getResponseSummary: getResponseSummaryContract,
|
|
281
|
+
listResponses: listResponsesContract,
|
|
282
|
+
resolveBlock: resolveBlockContract
|
|
283
|
+
};
|
|
284
|
+
var listActiveBlocksContract = oc9.route({ method: "GET", path: "/blocks/active" }).input(z9.object({})).output(z9.array(PortalBlockSchema));
|
|
285
|
+
var resolveBlockAltContract = oc9.route({ method: "PATCH", path: "/blocks/{blockId}/resolve" }).input(z9.object({ blockId: UuidSchema })).output(PortalBlockSchema);
|
|
286
|
+
var respondToBlockContract = oc9.route({ method: "PATCH", path: "/blocks/{blockId}/respond" }).input(RespondToBlockInputSchema).output(RespondToBlockOutputSchema);
|
|
287
|
+
var blocksContract = {
|
|
288
|
+
listActive: listActiveBlocksContract,
|
|
289
|
+
resolve: resolveBlockAltContract,
|
|
290
|
+
respond: respondToBlockContract
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export {
|
|
294
|
+
loginContract,
|
|
295
|
+
refreshTokenContract,
|
|
296
|
+
logoutContract,
|
|
297
|
+
getMeContract,
|
|
298
|
+
changePasswordContract,
|
|
299
|
+
requestPasswordResetContract,
|
|
300
|
+
resetPasswordContract,
|
|
301
|
+
switchBranchContract,
|
|
302
|
+
authContract,
|
|
303
|
+
createStaffContract,
|
|
304
|
+
listStaffContract,
|
|
305
|
+
getStaffByIdContract,
|
|
306
|
+
updateStaffStatusContract,
|
|
307
|
+
listDepartmentsContract,
|
|
308
|
+
createDepartmentContract,
|
|
309
|
+
hrContract,
|
|
310
|
+
createStudentContract,
|
|
311
|
+
bulkUploadStudentsContract,
|
|
312
|
+
listStudentsContract,
|
|
313
|
+
getStudentByIdContract,
|
|
314
|
+
linkGuardianContract,
|
|
315
|
+
listClassesContract,
|
|
316
|
+
studentsContract,
|
|
317
|
+
markAttendanceContract,
|
|
318
|
+
getByClassContract,
|
|
319
|
+
getByStudentContract,
|
|
320
|
+
listTermsContract,
|
|
321
|
+
attendanceContract,
|
|
322
|
+
listYearsContract,
|
|
323
|
+
createYearContract,
|
|
324
|
+
setCurrentYearContract,
|
|
325
|
+
calendarListTermsContract,
|
|
326
|
+
createTermContract,
|
|
327
|
+
setCurrentTermContract,
|
|
328
|
+
calendarContract,
|
|
329
|
+
listGradesContract,
|
|
330
|
+
createGradeContract,
|
|
331
|
+
gradesContract,
|
|
332
|
+
listCategoriesContract,
|
|
333
|
+
createCategoryContract,
|
|
334
|
+
updateCategoryContract,
|
|
335
|
+
listEntriesContract,
|
|
336
|
+
listForGuardianContract,
|
|
337
|
+
getEntryContract,
|
|
338
|
+
createEntryContract,
|
|
339
|
+
acknowledgeDiaryEntryContract,
|
|
340
|
+
respondToDiaryEntryContract,
|
|
341
|
+
requestLiftContract,
|
|
342
|
+
approveLiftContract,
|
|
343
|
+
listAcknowledgementsContract,
|
|
344
|
+
diaryContract,
|
|
345
|
+
listAccountsContract,
|
|
346
|
+
getByIdContract,
|
|
347
|
+
createBankAccountContract,
|
|
348
|
+
updateBankAccountContract,
|
|
349
|
+
setDefaultContract,
|
|
350
|
+
deactivateContract,
|
|
351
|
+
listBanksContract,
|
|
352
|
+
bankingContract,
|
|
353
|
+
listTemplatesContract,
|
|
354
|
+
getTemplateContract,
|
|
355
|
+
createNotificationContract,
|
|
356
|
+
submitContract,
|
|
357
|
+
approveContract,
|
|
358
|
+
rejectContract,
|
|
359
|
+
cancelContract,
|
|
360
|
+
listDeliveriesContract,
|
|
361
|
+
markReadContract,
|
|
362
|
+
markUnreadContract,
|
|
363
|
+
acknowledgeContract,
|
|
364
|
+
respondContract,
|
|
365
|
+
getResponseSummaryContract,
|
|
366
|
+
listResponsesContract,
|
|
367
|
+
resolveBlockContract,
|
|
368
|
+
notificationsContract,
|
|
369
|
+
listActiveBlocksContract,
|
|
370
|
+
resolveBlockAltContract,
|
|
371
|
+
respondToBlockContract,
|
|
372
|
+
blocksContract
|
|
373
|
+
};
|
|
374
|
+
//# sourceMappingURL=chunk-2B5AQI2I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/contracts/auth.ts","../src/contracts/hr.ts","../src/contracts/students.ts","../src/contracts/attendance.ts","../src/contracts/calendar.ts","../src/contracts/grades.ts","../src/contracts/diary.ts","../src/contracts/banking.ts","../src/contracts/notifications.ts"],"sourcesContent":["/**\n * Brite Future Schools — bfs-contracts\n * Auth oRPC contract.\n *\n * Defines the API surface for authentication. The bfs-api module\n * imports this and passes it to `implement()` — no logic lives here.\n *\n * HTTP method + path pairs follow REST conventions and feed into the\n * OpenAPI spec that oRPC generates automatically.\n *\n * Phase History:\n * Phase 0.1 (2026-06-05): Initial creation\n *\n * @module src/contracts/auth\n * @since Phase 0.1\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport {\n ChangePasswordInputSchema,\n LoginInputSchema,\n LoginOutputSchema,\n LogoutInputSchema,\n RefreshTokenInputSchema,\n RefreshTokenOutputSchema,\n RequestPasswordResetInputSchema,\n ResetPasswordInputSchema,\n SessionUserOutputSchema,\n SwitchBranchInputSchema,\n} from '../schemas/auth.js'\n\n/** Reusable empty-success output — used by mutations that return nothing */\nconst EmptyOutputSchema = z.object({}).meta({ description: 'Empty success response' })\n\n// ── Individual procedure contracts ────────────────────────────────────────────\n\n/** Exchange email + password for access/refresh token pair */\nexport const loginContract = oc\n .route({ method: 'POST', path: '/auth/login' })\n .input(LoginInputSchema)\n .output(LoginOutputSchema)\n\n/** Exchange a refresh token for a new access token */\nexport const refreshTokenContract = oc\n .route({ method: 'POST', path: '/auth/refresh' })\n .input(RefreshTokenInputSchema)\n .output(RefreshTokenOutputSchema)\n\n/** Revoke the current refresh token and end the session */\nexport const logoutContract = oc\n .route({ method: 'POST', path: '/auth/logout' })\n .input(LogoutInputSchema)\n .output(EmptyOutputSchema)\n\n/** Return the session user object for the current access token */\nexport const getMeContract = oc\n .route({ method: 'GET', path: '/auth/me' })\n .output(SessionUserOutputSchema)\n\n/** Change password (authenticated, requires current password) */\nexport const changePasswordContract = oc\n .route({ method: 'POST', path: '/auth/change-password' })\n .input(ChangePasswordInputSchema)\n .output(EmptyOutputSchema)\n\n/** Request a password-reset email */\nexport const requestPasswordResetContract = oc\n .route({ method: 'POST', path: '/auth/request-password-reset' })\n .input(RequestPasswordResetInputSchema)\n .output(EmptyOutputSchema)\n\n/** Complete a password reset using the emailed one-time token */\nexport const resetPasswordContract = oc\n .route({ method: 'POST', path: '/auth/reset-password' })\n .input(ResetPasswordInputSchema)\n .output(EmptyOutputSchema)\n\n/** Switch the active branch within an existing session */\nexport const switchBranchContract = oc\n .route({ method: 'POST', path: '/auth/switch-branch' })\n .input(SwitchBranchInputSchema)\n .output(SessionUserOutputSchema)\n\n// ── Auth contract router ──────────────────────────────────────────────────────\n\nexport const authContract = {\n login: loginContract,\n refreshToken: refreshTokenContract,\n logout: logoutContract,\n me: getMeContract,\n changePassword: changePasswordContract,\n requestPasswordReset: requestPasswordResetContract,\n resetPassword: resetPasswordContract,\n switchBranch: switchBranchContract,\n}\n","/**\n * Brite Future Schools — bfs-contracts\n * HR oRPC contract — staff and department procedure definitions.\n *\n * Phase History:\n * Phase 1 (2026-06-07): Initial creation\n *\n * @module src/contracts/hr\n * @since Phase 1\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport { UuidSchema, PaginationInputSchema } from '../schemas/base.js'\nimport {\n CreateStaffInputSchema,\n CreateStaffOutputSchema,\n StaffProfileSchema,\n StaffListItemSchema,\n ListStaffInputSchema,\n DepartmentSchema,\n CreateDepartmentInputSchema,\n} from '../schemas/hr.js'\n\nconst EmptyOutput = z.object({})\n\n// ── Staff ──────────────────────────────────────────────────────────────────────\n\nexport const createStaffContract = oc\n .route({ method: 'POST', path: '/hr/staff' })\n .input(CreateStaffInputSchema)\n .output(CreateStaffOutputSchema)\n\nexport const listStaffContract = oc\n .route({ method: 'GET', path: '/hr/staff' })\n .input(ListStaffInputSchema)\n .output(z.object({\n items: z.array(StaffListItemSchema),\n total: z.number(),\n nextCursor: UuidSchema.nullable(),\n }))\n\nexport const getStaffByIdContract = oc\n .route({ method: 'GET', path: '/hr/staff/{id}' })\n .input(z.object({ id: UuidSchema }))\n .output(StaffProfileSchema)\n\nexport const updateStaffStatusContract = oc\n .route({ method: 'PATCH', path: '/hr/staff/{id}/status' })\n .input(z.object({\n id: UuidSchema,\n status: z.enum(['active', 'inactive', 'suspended']),\n }))\n .output(EmptyOutput)\n\n// ── Departments ────────────────────────────────────────────────────────────────\n\nexport const listDepartmentsContract = oc\n .route({ method: 'GET', path: '/hr/departments' })\n .input(z.object({ branchId: UuidSchema.optional() }))\n .output(z.array(DepartmentSchema))\n\nexport const createDepartmentContract = oc\n .route({ method: 'POST', path: '/hr/departments' })\n .input(CreateDepartmentInputSchema)\n .output(DepartmentSchema)\n\n// ── HR contract router ─────────────────────────────────────────────────────────\n\nexport const hrContract = {\n createStaff: createStaffContract,\n listStaff: listStaffContract,\n getStaffById: getStaffByIdContract,\n updateStaffStatus: updateStaffStatusContract,\n listDepartments: listDepartmentsContract,\n createDepartment: createDepartmentContract,\n}","/**\n * Brite Future Schools — bfs-contracts\n * Students oRPC contract — student and guardian procedure definitions.\n *\n * Phase History:\n * Phase 1 (2026-06-07): Initial creation\n *\n * @module src/contracts/students\n * @since Phase 1\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport { UuidSchema } from '../schemas/base.js'\nimport {\n CreateStudentInputSchema,\n CreateStudentOutputSchema,\n StudentProfileSchema,\n StudentListItemSchema,\n ListStudentsInputSchema,\n BulkUploadStudentsInputSchema,\n BulkUploadStudentsOutputSchema,\n LinkGuardianInputSchema,\n ClassSummarySchema,\n} from '../schemas/students.js'\n\nconst EmptyOutput = z.object({})\n\n// ── Students ───────────────────────────────────────────────────────────────────\n\nexport const createStudentContract = oc\n .route({ method: 'POST', path: '/students' })\n .input(CreateStudentInputSchema)\n .output(CreateStudentOutputSchema)\n\nexport const bulkUploadStudentsContract = oc\n .route({ method: 'POST', path: '/students/bulk' })\n .input(BulkUploadStudentsInputSchema)\n .output(BulkUploadStudentsOutputSchema)\n\nexport const listStudentsContract = oc\n .route({ method: 'GET', path: '/students' })\n .input(ListStudentsInputSchema)\n .output(z.object({\n items: z.array(StudentListItemSchema),\n total: z.number(),\n nextCursor: UuidSchema.nullable(),\n }))\n\nexport const getStudentByIdContract = oc\n .route({ method: 'GET', path: '/students/{id}' })\n .input(z.object({ id: UuidSchema }))\n .output(StudentProfileSchema)\n\n// ── Guardians ──────────────────────────────────────────────────────────────────\n\nexport const linkGuardianContract = oc\n .route({ method: 'POST', path: '/students/guardians' })\n .input(LinkGuardianInputSchema)\n .output(z.object({ guardianId: UuidSchema }))\n\n// ── Classes (selector data) ────────────────────────────────────────────────────\n\nexport const listClassesContract = oc\n .route({ method: 'GET', path: '/students/classes' })\n .input(z.object({\n termId: UuidSchema.optional(),\n gradeLevel: z.string().optional(),\n }))\n .output(z.array(ClassSummarySchema))\n\n// ── Students contract router ───────────────────────────────────────────────────\n\nexport const studentsContract = {\n create: createStudentContract,\n bulkUpload: bulkUploadStudentsContract,\n list: listStudentsContract,\n getById: getStudentByIdContract,\n linkGuardian: linkGuardianContract,\n listClasses: listClassesContract,\n}","/**\n * Brite Future Schools — bfs-contracts\n * Attendance oRPC contract — class attendance procedure definitions.\n *\n * Phase History:\n * Phase 2.1 (2026-06-08): Initial — mark, getByClass, getByStudent, listTerms\n *\n * @module src/contracts/attendance\n * @since Phase 2.1\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport { UuidSchema } from '../schemas/base.js'\nimport {\n MarkAttendanceInputSchema,\n MarkAttendanceOutputSchema,\n GetByClassInputSchema,\n GetByStudentInputSchema,\n ClassAttendanceRowSchema,\n StudentAttendanceRowSchema,\n TermSchema,\n} from '../schemas/attendance.js'\n\n// ── Class attendance ───────────────────────────────────────────────────────────\n\nexport const markAttendanceContract = oc\n .route({ method: 'POST', path: '/attendance/class/mark' })\n .input(MarkAttendanceInputSchema)\n .output(MarkAttendanceOutputSchema)\n\nexport const getByClassContract = oc\n .route({ method: 'GET', path: '/attendance/class' })\n .input(GetByClassInputSchema)\n .output(z.array(ClassAttendanceRowSchema))\n\nexport const getByStudentContract = oc\n .route({ method: 'GET', path: '/attendance/student' })\n .input(GetByStudentInputSchema)\n .output(z.array(StudentAttendanceRowSchema))\n\n// ── Terms ──────────────────────────────────────────────────────────────────────\n\nexport const listTermsContract = oc\n .route({ method: 'GET', path: '/terms' })\n .input(z.object({}))\n .output(z.array(TermSchema))\n\n// ── Attendance contract router ─────────────────────────────────────────────────\n\nexport const attendanceContract = {\n mark: markAttendanceContract,\n getByClass: getByClassContract,\n getByStudent: getByStudentContract,\n listTerms: listTermsContract,\n}","/**\n * Brite Future Schools — bfs-contracts\n * Calendar oRPC contract — academic year and term procedure definitions.\n *\n * Phase History:\n * Phase 4.1 (2026-06-12): Initial creation\n *\n * @module src/contracts/calendar\n * @since Phase 4.1\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport {\n AcademicYearSchema,\n AcademicTermSchema,\n CreateYearInputSchema,\n CreateTermInputSchema,\n SetCurrentYearInputSchema,\n SetCurrentTermInputSchema,\n ListTermsInputSchema,\n} from '../schemas/calendar.js'\n\n// ── Academic Years ─────────────────────────────────────────────────────────────\n\nexport const listYearsContract = oc\n .route({ method: 'GET', path: '/calendar/years' })\n .input(z.object({}))\n .output(z.array(AcademicYearSchema))\n\nexport const createYearContract = oc\n .route({ method: 'POST', path: '/calendar/years' })\n .input(CreateYearInputSchema)\n .output(AcademicYearSchema)\n\nexport const setCurrentYearContract = oc\n .route({ method: 'POST', path: '/calendar/years/current' })\n .input(SetCurrentYearInputSchema)\n .output(AcademicYearSchema)\n\n// ── Terms ──────────────────────────────────────────────────────────────────────\n// Prefixed with \"calendarList\" to avoid clash with attendance.listTermsContract\n\nexport const calendarListTermsContract = oc\n .route({ method: 'GET', path: '/calendar/terms' })\n .input(ListTermsInputSchema)\n .output(z.array(AcademicTermSchema))\n\nexport const createTermContract = oc\n .route({ method: 'POST', path: '/calendar/terms' })\n .input(CreateTermInputSchema)\n .output(AcademicTermSchema)\n\nexport const setCurrentTermContract = oc\n .route({ method: 'POST', path: '/calendar/terms/current' })\n .input(SetCurrentTermInputSchema)\n .output(AcademicTermSchema)\n\n// ── Calendar contract router ───────────────────────────────────────────────────\n\nexport const calendarContract = {\n listYears: listYearsContract,\n createYear: createYearContract,\n setCurrentYear: setCurrentYearContract,\n listTerms: calendarListTermsContract,\n createTerm: createTermContract,\n setCurrentTerm: setCurrentTermContract,\n}","/**\n * Brite Future Schools — bfs-contracts\n * Grades oRPC contract — grade procedure definitions.\n *\n * Phase History:\n * Phase 4.1 (2026-06-12): Initial creation\n *\n * @module src/contracts/grades\n * @since Phase 4.1\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport {\n GradeSchema,\n CreateGradeInputSchema,\n} from '../schemas/grades.js'\n\n// ── Grades ─────────────────────────────────────────────────────────────────────\n\nexport const listGradesContract = oc\n .route({ method: 'GET', path: '/grades' })\n .input(z.object({}))\n .output(z.array(GradeSchema))\n\nexport const createGradeContract = oc\n .route({ method: 'POST', path: '/grades' })\n .input(CreateGradeInputSchema)\n .output(GradeSchema)\n\n// ── Grades contract router ─────────────────────────────────────────────────────\n\nexport const gradesContract = {\n list: listGradesContract,\n create: createGradeContract,\n}","/**\n * Brite Future Schools — bfs-contracts\n * E-Diary oRPC contract — categories, entries, acknowledgements, block lift chain.\n *\n * Phase History:\n * Phase 8 (2026-07-20): Initial creation — Module 2 (E-Diary)\n *\n * @module src/contracts/diary\n * @since Phase 8\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport { UuidSchema } from '../schemas/base.js'\nimport {\n CreateDiaryCategoryInputSchema,\n UpdateDiaryCategoryInputSchema,\n DiaryCategorySchema,\n ListDiaryEntriesInputSchema,\n DiaryEntrySchema,\n DiaryEntryDetailSchema,\n DiaryEntryForGuardianSchema,\n CreateDiaryEntryInputSchema,\n AcknowledgeDiaryEntryInputSchema,\n RespondToDiaryEntryInputSchema,\n DiaryAcknowledgementSchema,\n DiaryBlockIdInputSchema,\n DiaryBlockSchema,\n ListDiaryAcknowledgementsInputSchema,\n} from '../schemas/diary.js'\n\nconst IdInput = z.object({ id: UuidSchema })\n\n// ── diary.listCategories ─────────────────────────────────────────────────────\n\nexport const listCategoriesContract = oc\n .route({ method: 'GET', path: '/diary/categories' })\n .input(z.object({}))\n .output(z.array(DiaryCategorySchema))\n\n// ── diary.createCategory ─────────────────────────────────────────────────────\n\nexport const createCategoryContract = oc\n .route({ method: 'POST', path: '/diary/categories' })\n .input(CreateDiaryCategoryInputSchema)\n .output(DiaryCategorySchema)\n\n// ── diary.updateCategory ─────────────────────────────────────────────────────\n\nexport const updateCategoryContract = oc\n .route({ method: 'PATCH', path: '/diary/categories/{id}' })\n .input(UpdateDiaryCategoryInputSchema)\n .output(DiaryCategorySchema)\n\n// ── diary.listEntries ─────────────────────────────────────────────────────────\n\nexport const listEntriesContract = oc\n .route({ method: 'GET', path: '/diary/entries' })\n .input(ListDiaryEntriesInputSchema)\n .output(z.array(DiaryEntrySchema))\n\n// ── diary.listForGuardian ─────────────────────────────────────────────────────\n// Guardian-facing, authed not branched — no activeBranchId in scope.\n\nexport const listForGuardianContract = oc\n .route({ method: 'GET', path: '/diary/entries/guardian' })\n .input(z.object({}))\n .output(z.array(DiaryEntryForGuardianSchema))\n\n// ── diary.getEntry ────────────────────────────────────────────────────────────\n\nexport const getEntryContract = oc\n .route({ method: 'GET', path: '/diary/entries/{id}' })\n .input(IdInput)\n .output(DiaryEntryDetailSchema)\n\n// ── diary.createEntry ─────────────────────────────────────────────────────────\n\nexport const createEntryContract = oc\n .route({ method: 'POST', path: '/diary/entries' })\n .input(CreateDiaryEntryInputSchema)\n .output(DiaryEntrySchema)\n\n// ── diary.acknowledge ─────────────────────────────────────────────────────────\n\nexport const acknowledgeDiaryEntryContract = oc\n .route({ method: 'PATCH', path: '/diary/entries/{entryId}/acknowledge' })\n .input(AcknowledgeDiaryEntryInputSchema)\n .output(DiaryAcknowledgementSchema)\n\n// ── diary.respond ─────────────────────────────────────────────────────────────\n\nexport const respondToDiaryEntryContract = oc\n .route({ method: 'PATCH', path: '/diary/entries/{entryId}/respond' })\n .input(RespondToDiaryEntryInputSchema)\n .output(DiaryAcknowledgementSchema)\n\n// ── diary.requestLift ─────────────────────────────────────────────────────────\n\nexport const requestLiftContract = oc\n .route({ method: 'PATCH', path: '/diary/blocks/{blockId}/request-lift' })\n .input(DiaryBlockIdInputSchema)\n .output(DiaryBlockSchema)\n\n// ── diary.approveLift ─────────────────────────────────────────────────────────\n\nexport const approveLiftContract = oc\n .route({ method: 'PATCH', path: '/diary/blocks/{blockId}/approve-lift' })\n .input(DiaryBlockIdInputSchema)\n .output(DiaryBlockSchema)\n\n// ── diary.listAcknowledgements ────────────────────────────────────────────────\n\nexport const listAcknowledgementsContract = oc\n .route({ method: 'GET', path: '/diary/entries/{entryId}/acknowledgements' })\n .input(ListDiaryAcknowledgementsInputSchema)\n .output(z.array(DiaryAcknowledgementSchema))\n\n// ── Diary contract router ────────────────────────────────────────────────────\n\nexport const diaryContract = {\n listCategories: listCategoriesContract,\n createCategory: createCategoryContract,\n updateCategory: updateCategoryContract,\n listEntries: listEntriesContract,\n listForGuardian: listForGuardianContract,\n getEntry: getEntryContract,\n createEntry: createEntryContract,\n acknowledge: acknowledgeDiaryEntryContract,\n respond: respondToDiaryEntryContract,\n requestLift: requestLiftContract,\n approveLift: approveLiftContract,\n listAcknowledgements: listAcknowledgementsContract,\n}\n","/**\n * Brite Future Schools — bfs-contracts\n * Banking oRPC contract — branch bank account procedure definitions.\n *\n * Phase History:\n * Phase 8 (2026-07-20): Initial creation — Module 1 (Branch Banking)\n *\n * @module src/contracts/banking\n * @since Phase 8\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport { UuidSchema } from '../schemas/base.js'\nimport {\n CreateBankAccountInputSchema,\n UpdateBankAccountInputSchema,\n ListBankAccountsInputSchema,\n BranchBankAccountSchema,\n KenyanBankSchema,\n} from '../schemas/banking.js'\n\n// ── banking.listAccounts ─────────────────────────────────────────────────────\n\nexport const listAccountsContract = oc\n .route({ method: 'GET', path: '/banking/accounts' })\n .input(ListBankAccountsInputSchema)\n .output(z.array(BranchBankAccountSchema))\n\n// ── banking.getById ──────────────────────────────────────────────────────────\n\nexport const getByIdContract = oc\n .route({ method: 'GET', path: '/banking/accounts/{id}' })\n .input(z.object({ id: UuidSchema }))\n .output(BranchBankAccountSchema)\n\n// ── banking.create ───────────────────────────────────────────────────────────\n\nexport const createBankAccountContract = oc\n .route({ method: 'POST', path: '/banking/accounts' })\n .input(CreateBankAccountInputSchema)\n .output(BranchBankAccountSchema)\n\n// ── banking.update ───────────────────────────────────────────────────────────\n\nexport const updateBankAccountContract = oc\n .route({ method: 'PATCH', path: '/banking/accounts/{id}' })\n .input(UpdateBankAccountInputSchema)\n .output(BranchBankAccountSchema)\n\n// ── banking.setDefault ───────────────────────────────────────────────────────\n\nexport const setDefaultContract = oc\n .route({ method: 'PATCH', path: '/banking/accounts/{id}/default' })\n .input(z.object({ id: UuidSchema }))\n .output(BranchBankAccountSchema)\n\n// ── banking.deactivate ───────────────────────────────────────────────────────\n\nexport const deactivateContract = oc\n .route({ method: 'PATCH', path: '/banking/accounts/{id}/deactivate' })\n .input(z.object({ id: UuidSchema }))\n .output(BranchBankAccountSchema)\n\n// ── banking.listBanks ────────────────────────────────────────────────────────\n\nexport const listBanksContract = oc\n .route({ method: 'GET', path: '/banking/banks' })\n .input(z.object({}))\n .output(z.array(KenyanBankSchema))\n\n// ── Banking contract router ──────────────────────────────────────────────────\n\nexport const bankingContract = {\n listAccounts: listAccountsContract,\n getById: getByIdContract,\n create: createBankAccountContract,\n update: updateBankAccountContract,\n setDefault: setDefaultContract,\n deactivate: deactivateContract,\n listBanks: listBanksContract,\n}\n","/**\n * Brite Future Schools — bfs-contracts\n * Notifications oRPC contract — templates, approval workflow, deliveries,\n * and the universal portal block gate.\n *\n * Two contract routers are exported, matching bfs-api's two-namespace\n * split: notificationsContract (template/delivery lifecycle) and\n * blocksContract (BlockGate's universal cross-module gate).\n *\n * Phase History:\n * Phase 8 (2026-07-20): Initial creation — Module 3 (Notification System)\n *\n * @module src/contracts/notifications\n * @since Phase 8\n */\n\nimport { oc } from '@orpc/contract'\nimport * as z from 'zod'\nimport { UuidSchema } from '../schemas/base.js'\nimport {\n CreateNotificationInputSchema,\n ListNotificationTemplatesInputSchema,\n NotificationTemplateSchema,\n RejectNotificationInputSchema,\n ListDeliveriesInputSchema,\n NotificationDeliverySchema,\n AcknowledgeDeliveryInputSchema,\n RespondToDeliveryInputSchema,\n ResponseSummarySchema,\n NotificationResponseItemSchema,\n PortalBlockSchema,\n RespondToBlockInputSchema,\n RespondToBlockOutputSchema,\n} from '../schemas/notifications.js'\n\nconst EmptyOutput = z.object({})\nconst IdInput = z.object({ id: UuidSchema })\n\n// ── notifications.listTemplates ──────────────────────────────────────────────\n\nexport const listTemplatesContract = oc\n .route({ method: 'GET', path: '/notifications/templates' })\n .input(ListNotificationTemplatesInputSchema)\n .output(z.array(NotificationTemplateSchema))\n\n// ── notifications.getTemplate ────────────────────────────────────────────────\n\nexport const getTemplateContract = oc\n .route({ method: 'GET', path: '/notifications/templates/{id}' })\n .input(IdInput)\n .output(NotificationTemplateSchema)\n\n// ── notifications.create ─────────────────────────────────────────────────────\n\nexport const createNotificationContract = oc\n .route({ method: 'POST', path: '/notifications/templates' })\n .input(CreateNotificationInputSchema)\n .output(NotificationTemplateSchema)\n\n// ── notifications.submit ─────────────────────────────────────────────────────\n\nexport const submitContract = oc\n .route({ method: 'PATCH', path: '/notifications/templates/{id}/submit' })\n .input(IdInput)\n .output(NotificationTemplateSchema)\n\n// ── notifications.approve ────────────────────────────────────────────────────\n\nexport const approveContract = oc\n .route({ method: 'PATCH', path: '/notifications/templates/{id}/approve' })\n .input(IdInput)\n .output(NotificationTemplateSchema)\n\n// ── notifications.reject ─────────────────────────────────────────────────────\n\nexport const rejectContract = oc\n .route({ method: 'PATCH', path: '/notifications/templates/{id}/reject' })\n .input(RejectNotificationInputSchema)\n .output(NotificationTemplateSchema)\n\n// ── notifications.cancel ─────────────────────────────────────────────────────\n\nexport const cancelContract = oc\n .route({ method: 'PATCH', path: '/notifications/templates/{id}/cancel' })\n .input(IdInput)\n .output(NotificationTemplateSchema)\n\n// ── notifications.listDeliveries ─────────────────────────────────────────────\n\nexport const listDeliveriesContract = oc\n .route({ method: 'GET', path: '/notifications/deliveries' })\n .input(ListDeliveriesInputSchema)\n .output(z.array(NotificationDeliverySchema))\n\n// ── notifications.markRead / markUnread ──────────────────────────────────────\n\nexport const markReadContract = oc\n .route({ method: 'PATCH', path: '/notifications/deliveries/{deliveryId}/read' })\n .input(z.object({ deliveryId: UuidSchema }))\n .output(NotificationDeliverySchema)\n\nexport const markUnreadContract = oc\n .route({ method: 'PATCH', path: '/notifications/deliveries/{deliveryId}/unread' })\n .input(z.object({ deliveryId: UuidSchema }))\n .output(NotificationDeliverySchema)\n\n// ── notifications.acknowledge / respond ──────────────────────────────────────\n\nexport const acknowledgeContract = oc\n .route({ method: 'PATCH', path: '/notifications/deliveries/{deliveryId}/acknowledge' })\n .input(AcknowledgeDeliveryInputSchema)\n .output(NotificationDeliverySchema)\n\nexport const respondContract = oc\n .route({ method: 'PATCH', path: '/notifications/deliveries/{deliveryId}/respond' })\n .input(RespondToDeliveryInputSchema)\n .output(NotificationDeliverySchema)\n\n// ── notifications.getResponseSummary ─────────────────────────────────────────\n\nexport const getResponseSummaryContract = oc\n .route({ method: 'GET', path: '/notifications/templates/{id}/response-summary' })\n .input(IdInput)\n .output(ResponseSummarySchema)\n\n// ── notifications.listResponses ──────────────────────────────────────────────\n\nexport const listResponsesContract = oc\n .route({ method: 'GET', path: '/notifications/templates/{id}/responses' })\n .input(IdInput)\n .output(z.array(NotificationResponseItemSchema))\n\n// ── notifications.resolveBlock ───────────────────────────────────────────────\n\nexport const resolveBlockContract = oc\n .route({ method: 'PATCH', path: '/notifications/blocks/{blockId}/resolve' })\n .input(z.object({ blockId: UuidSchema }))\n .output(PortalBlockSchema)\n\n// ── Notifications contract router ────────────────────────────────────────────\n\nexport const notificationsContract = {\n listTemplates: listTemplatesContract,\n getTemplate: getTemplateContract,\n create: createNotificationContract,\n submit: submitContract,\n approve: approveContract,\n reject: rejectContract,\n cancel: cancelContract,\n listDeliveries: listDeliveriesContract,\n markRead: markReadContract,\n markUnread: markUnreadContract,\n acknowledge: acknowledgeContract,\n respond: respondContract,\n getResponseSummary: getResponseSummaryContract,\n listResponses: listResponsesContract,\n resolveBlock: resolveBlockContract,\n}\n\n// ── blocks.listActive / blocks.resolve / blocks.respond ──────────────────────\n// Separate namespace per bfs-api's own router split — same underlying\n// resolveBlock action as notifications.resolveBlock above for `resolve`,\n// plus the cross-module dispatch procedure `respond`.\n\nexport const listActiveBlocksContract = oc\n .route({ method: 'GET', path: '/blocks/active' })\n .input(z.object({}))\n .output(z.array(PortalBlockSchema))\n\nexport const resolveBlockAltContract = oc\n .route({ method: 'PATCH', path: '/blocks/{blockId}/resolve' })\n .input(z.object({ blockId: UuidSchema }))\n .output(PortalBlockSchema)\n\nexport const respondToBlockContract = oc\n .route({ method: 'PATCH', path: '/blocks/{blockId}/respond' })\n .input(RespondToBlockInputSchema)\n .output(RespondToBlockOutputSchema)\n\nexport const blocksContract = {\n listActive: listActiveBlocksContract,\n resolve: resolveBlockAltContract,\n respond: respondToBlockContract,\n}\n"],"mappings":"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","names":["oc","z","oc","oc","z","EmptyOutput","oc","oc","z","oc","oc","z","oc","oc","z","oc","oc","z","oc","oc","z","oc","oc","z","EmptyOutput","IdInput","oc"]}
|