@aibrains/shared-types 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/schemas/academics/attendance.schema.d.ts +25 -6
  6. package/dist/schemas/academics/attendance.schema.d.ts.map +1 -1
  7. package/dist/schemas/academics/attendance.schema.js +4 -0
  8. package/dist/schemas/academics/attendance.schema.js.map +1 -1
  9. package/dist/schemas/academics/course-section.schema.d.ts +50 -2
  10. package/dist/schemas/academics/course-section.schema.d.ts.map +1 -1
  11. package/dist/schemas/academics/course-section.schema.js +7 -0
  12. package/dist/schemas/academics/course-section.schema.js.map +1 -1
  13. package/dist/schemas/academics/grade.schema.d.ts +141 -20
  14. package/dist/schemas/academics/grade.schema.d.ts.map +1 -1
  15. package/dist/schemas/academics/grade.schema.js +23 -6
  16. package/dist/schemas/academics/grade.schema.js.map +1 -1
  17. package/dist/schemas/finance/common.d.ts +41 -0
  18. package/dist/schemas/finance/common.d.ts.map +1 -0
  19. package/dist/schemas/finance/common.js +105 -0
  20. package/dist/schemas/finance/common.js.map +1 -0
  21. package/dist/schemas/finance/fee-structure.schema.d.ts +163 -0
  22. package/dist/schemas/finance/fee-structure.schema.d.ts.map +1 -0
  23. package/dist/schemas/finance/fee-structure.schema.js +78 -0
  24. package/dist/schemas/finance/fee-structure.schema.js.map +1 -0
  25. package/dist/schemas/finance/index.d.ts +12 -0
  26. package/dist/schemas/finance/index.d.ts.map +1 -0
  27. package/dist/schemas/finance/index.js +28 -0
  28. package/dist/schemas/finance/index.js.map +1 -0
  29. package/dist/schemas/finance/invoice.schema.d.ts +301 -0
  30. package/dist/schemas/finance/invoice.schema.d.ts.map +1 -0
  31. package/dist/schemas/finance/invoice.schema.js +107 -0
  32. package/dist/schemas/finance/invoice.schema.js.map +1 -0
  33. package/dist/schemas/finance/payment-gateway.schema.d.ts +84 -0
  34. package/dist/schemas/finance/payment-gateway.schema.d.ts.map +1 -0
  35. package/dist/schemas/finance/payment-gateway.schema.js +41 -0
  36. package/dist/schemas/finance/payment-gateway.schema.js.map +1 -0
  37. package/dist/schemas/finance/payment.schema.d.ts +794 -0
  38. package/dist/schemas/finance/payment.schema.d.ts.map +1 -0
  39. package/dist/schemas/finance/payment.schema.js +170 -0
  40. package/dist/schemas/finance/payment.schema.js.map +1 -0
  41. package/dist/schemas/finance/student-account.schema.d.ts +89 -0
  42. package/dist/schemas/finance/student-account.schema.d.ts.map +1 -0
  43. package/dist/schemas/finance/student-account.schema.js +50 -0
  44. package/dist/schemas/finance/student-account.schema.js.map +1 -0
  45. package/dist/schemas/index.d.ts +1 -0
  46. package/dist/schemas/index.d.ts.map +1 -1
  47. package/dist/schemas/index.js +1 -0
  48. package/dist/schemas/index.js.map +1 -1
  49. package/dist/utils/currency.d.ts +23 -0
  50. package/dist/utils/currency.d.ts.map +1 -0
  51. package/dist/utils/currency.js +45 -0
  52. package/dist/utils/currency.js.map +1 -0
  53. package/package.json +1 -1
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Invoice Schemas
3
+ *
4
+ * Invoices represent bills sent to students/parents.
5
+ * Lifecycle: draft → issued → partially_paid → paid → overdue → cancelled → written_off
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const invoiceLineItemSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ feeStructureId: z.ZodString;
11
+ description: z.ZodString;
12
+ amount: z.ZodNumber;
13
+ quantity: z.ZodDefault<z.ZodNumber>;
14
+ discount: z.ZodDefault<z.ZodNumber>;
15
+ discountReason: z.ZodOptional<z.ZodString>;
16
+ taxRate: z.ZodNumber;
17
+ taxAmount: z.ZodNumber;
18
+ total: z.ZodNumber;
19
+ }, "strip", z.ZodTypeAny, {
20
+ total: number;
21
+ description: string;
22
+ id: string;
23
+ amount: number;
24
+ taxRate: number;
25
+ feeStructureId: string;
26
+ quantity: number;
27
+ discount: number;
28
+ taxAmount: number;
29
+ discountReason?: string | undefined;
30
+ }, {
31
+ total: number;
32
+ description: string;
33
+ id: string;
34
+ amount: number;
35
+ taxRate: number;
36
+ feeStructureId: string;
37
+ taxAmount: number;
38
+ quantity?: number | undefined;
39
+ discount?: number | undefined;
40
+ discountReason?: string | undefined;
41
+ }>;
42
+ export type InvoiceLineItem = z.infer<typeof invoiceLineItemSchema>;
43
+ export declare const invoiceResponseSchema: z.ZodObject<{
44
+ id: z.ZodString;
45
+ invoiceNumber: z.ZodString;
46
+ studentAccountId: z.ZodString;
47
+ studentId: z.ZodString;
48
+ studentName: z.ZodString;
49
+ schoolId: z.ZodString;
50
+ schoolName: z.ZodString;
51
+ academicYear: z.ZodString;
52
+ billingPeriod: z.ZodOptional<z.ZodString>;
53
+ lineItems: z.ZodArray<z.ZodObject<{
54
+ id: z.ZodString;
55
+ feeStructureId: z.ZodString;
56
+ description: z.ZodString;
57
+ amount: z.ZodNumber;
58
+ quantity: z.ZodDefault<z.ZodNumber>;
59
+ discount: z.ZodDefault<z.ZodNumber>;
60
+ discountReason: z.ZodOptional<z.ZodString>;
61
+ taxRate: z.ZodNumber;
62
+ taxAmount: z.ZodNumber;
63
+ total: z.ZodNumber;
64
+ }, "strip", z.ZodTypeAny, {
65
+ total: number;
66
+ description: string;
67
+ id: string;
68
+ amount: number;
69
+ taxRate: number;
70
+ feeStructureId: string;
71
+ quantity: number;
72
+ discount: number;
73
+ taxAmount: number;
74
+ discountReason?: string | undefined;
75
+ }, {
76
+ total: number;
77
+ description: string;
78
+ id: string;
79
+ amount: number;
80
+ taxRate: number;
81
+ feeStructureId: string;
82
+ taxAmount: number;
83
+ quantity?: number | undefined;
84
+ discount?: number | undefined;
85
+ discountReason?: string | undefined;
86
+ }>, "many">;
87
+ subtotal: z.ZodNumber;
88
+ taxTotal: z.ZodNumber;
89
+ discountTotal: z.ZodNumber;
90
+ grandTotal: z.ZodNumber;
91
+ amountPaid: z.ZodNumber;
92
+ amountDue: z.ZodNumber;
93
+ currency: z.ZodEnum<["NPR"]>;
94
+ dueDate: z.ZodString;
95
+ issuedDate: z.ZodString;
96
+ status: z.ZodEnum<["draft", "issued", "partially_paid", "paid", "overdue", "cancelled", "written_off"]>;
97
+ notes: z.ZodOptional<z.ZodString>;
98
+ createdAt: z.ZodString;
99
+ updatedAt: z.ZodString;
100
+ }, "strip", z.ZodTypeAny, {
101
+ status: "cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off";
102
+ createdAt: string;
103
+ updatedAt: string;
104
+ schoolId: string;
105
+ schoolName: string;
106
+ studentId: string;
107
+ id: string;
108
+ studentName: string;
109
+ academicYear: string;
110
+ dueDate: string;
111
+ currency: "NPR";
112
+ invoiceNumber: string;
113
+ studentAccountId: string;
114
+ lineItems: {
115
+ total: number;
116
+ description: string;
117
+ id: string;
118
+ amount: number;
119
+ taxRate: number;
120
+ feeStructureId: string;
121
+ quantity: number;
122
+ discount: number;
123
+ taxAmount: number;
124
+ discountReason?: string | undefined;
125
+ }[];
126
+ subtotal: number;
127
+ taxTotal: number;
128
+ discountTotal: number;
129
+ grandTotal: number;
130
+ amountPaid: number;
131
+ amountDue: number;
132
+ issuedDate: string;
133
+ notes?: string | undefined;
134
+ billingPeriod?: string | undefined;
135
+ }, {
136
+ status: "cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off";
137
+ createdAt: string;
138
+ updatedAt: string;
139
+ schoolId: string;
140
+ schoolName: string;
141
+ studentId: string;
142
+ id: string;
143
+ studentName: string;
144
+ academicYear: string;
145
+ dueDate: string;
146
+ currency: "NPR";
147
+ invoiceNumber: string;
148
+ studentAccountId: string;
149
+ lineItems: {
150
+ total: number;
151
+ description: string;
152
+ id: string;
153
+ amount: number;
154
+ taxRate: number;
155
+ feeStructureId: string;
156
+ taxAmount: number;
157
+ quantity?: number | undefined;
158
+ discount?: number | undefined;
159
+ discountReason?: string | undefined;
160
+ }[];
161
+ subtotal: number;
162
+ taxTotal: number;
163
+ discountTotal: number;
164
+ grandTotal: number;
165
+ amountPaid: number;
166
+ amountDue: number;
167
+ issuedDate: string;
168
+ notes?: string | undefined;
169
+ billingPeriod?: string | undefined;
170
+ }>;
171
+ export type Invoice = z.infer<typeof invoiceResponseSchema>;
172
+ export declare const generateInvoiceSchema: z.ZodObject<{
173
+ studentAccountId: z.ZodString;
174
+ academicYear: z.ZodString;
175
+ billingPeriod: z.ZodOptional<z.ZodString>;
176
+ feeStructureIds: z.ZodArray<z.ZodString, "many">;
177
+ dueDate: z.ZodEffects<z.ZodString, string, string>;
178
+ notes: z.ZodOptional<z.ZodString>;
179
+ discounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
180
+ feeStructureId: z.ZodString;
181
+ amount: z.ZodNumber;
182
+ reason: z.ZodOptional<z.ZodString>;
183
+ }, "strip", z.ZodTypeAny, {
184
+ amount: number;
185
+ feeStructureId: string;
186
+ reason?: string | undefined;
187
+ }, {
188
+ amount: number;
189
+ feeStructureId: string;
190
+ reason?: string | undefined;
191
+ }>, "many">>;
192
+ }, "strip", z.ZodTypeAny, {
193
+ academicYear: string;
194
+ dueDate: string;
195
+ studentAccountId: string;
196
+ feeStructureIds: string[];
197
+ notes?: string | undefined;
198
+ billingPeriod?: string | undefined;
199
+ discounts?: {
200
+ amount: number;
201
+ feeStructureId: string;
202
+ reason?: string | undefined;
203
+ }[] | undefined;
204
+ }, {
205
+ academicYear: string;
206
+ dueDate: string;
207
+ studentAccountId: string;
208
+ feeStructureIds: string[];
209
+ notes?: string | undefined;
210
+ billingPeriod?: string | undefined;
211
+ discounts?: {
212
+ amount: number;
213
+ feeStructureId: string;
214
+ reason?: string | undefined;
215
+ }[] | undefined;
216
+ }>;
217
+ export type GenerateInvoiceDto = z.infer<typeof generateInvoiceSchema>;
218
+ export declare const bulkGenerateInvoiceSchema: z.ZodObject<{
219
+ studentAccountIds: z.ZodArray<z.ZodString, "many">;
220
+ academicYear: z.ZodString;
221
+ billingPeriod: z.ZodOptional<z.ZodString>;
222
+ feeStructureIds: z.ZodArray<z.ZodString, "many">;
223
+ dueDate: z.ZodEffects<z.ZodString, string, string>;
224
+ notes: z.ZodOptional<z.ZodString>;
225
+ }, "strip", z.ZodTypeAny, {
226
+ academicYear: string;
227
+ dueDate: string;
228
+ feeStructureIds: string[];
229
+ studentAccountIds: string[];
230
+ notes?: string | undefined;
231
+ billingPeriod?: string | undefined;
232
+ }, {
233
+ academicYear: string;
234
+ dueDate: string;
235
+ feeStructureIds: string[];
236
+ studentAccountIds: string[];
237
+ notes?: string | undefined;
238
+ billingPeriod?: string | undefined;
239
+ }>;
240
+ export type BulkGenerateInvoiceDto = z.infer<typeof bulkGenerateInvoiceSchema>;
241
+ export declare const updateInvoiceSchema: z.ZodObject<{
242
+ status: z.ZodOptional<z.ZodEnum<["draft", "issued", "partially_paid", "paid", "overdue", "cancelled", "written_off"]>>;
243
+ notes: z.ZodOptional<z.ZodString>;
244
+ dueDate: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
245
+ discounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
246
+ lineItemId: z.ZodString;
247
+ amount: z.ZodNumber;
248
+ reason: z.ZodOptional<z.ZodString>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ amount: number;
251
+ lineItemId: string;
252
+ reason?: string | undefined;
253
+ }, {
254
+ amount: number;
255
+ lineItemId: string;
256
+ reason?: string | undefined;
257
+ }>, "many">>;
258
+ }, "strip", z.ZodTypeAny, {
259
+ status?: "cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off" | undefined;
260
+ notes?: string | undefined;
261
+ dueDate?: string | undefined;
262
+ discounts?: {
263
+ amount: number;
264
+ lineItemId: string;
265
+ reason?: string | undefined;
266
+ }[] | undefined;
267
+ }, {
268
+ status?: "cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off" | undefined;
269
+ notes?: string | undefined;
270
+ dueDate?: string | undefined;
271
+ discounts?: {
272
+ amount: number;
273
+ lineItemId: string;
274
+ reason?: string | undefined;
275
+ }[] | undefined;
276
+ }>;
277
+ export type UpdateInvoiceDto = z.infer<typeof updateInvoiceSchema>;
278
+ export declare const invoiceFilterSchema: z.ZodObject<{
279
+ status: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["draft", "issued", "partially_paid", "paid", "overdue", "cancelled", "written_off"]>, z.ZodArray<z.ZodEnum<["draft", "issued", "partially_paid", "paid", "overdue", "cancelled", "written_off"]>, "many">]>>;
280
+ studentId: z.ZodOptional<z.ZodString>;
281
+ academicYear: z.ZodOptional<z.ZodString>;
282
+ dueDateFrom: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
283
+ dueDateTo: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
284
+ searchTerm: z.ZodOptional<z.ZodString>;
285
+ }, "strip", z.ZodTypeAny, {
286
+ status?: "cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off" | ("cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off")[] | undefined;
287
+ studentId?: string | undefined;
288
+ searchTerm?: string | undefined;
289
+ academicYear?: string | undefined;
290
+ dueDateFrom?: string | undefined;
291
+ dueDateTo?: string | undefined;
292
+ }, {
293
+ status?: "cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off" | ("cancelled" | "draft" | "issued" | "partially_paid" | "paid" | "overdue" | "written_off")[] | undefined;
294
+ studentId?: string | undefined;
295
+ searchTerm?: string | undefined;
296
+ academicYear?: string | undefined;
297
+ dueDateFrom?: string | undefined;
298
+ dueDateTo?: string | undefined;
299
+ }>;
300
+ export type InvoiceFilterDto = z.infer<typeof invoiceFilterSchema>;
301
+ //# sourceMappingURL=invoice.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/finance/invoice.schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBhC,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAM5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYhC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMvE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAOpC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM/E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMnE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Invoice Schemas
4
+ *
5
+ * Invoices represent bills sent to students/parents.
6
+ * Lifecycle: draft → issued → partially_paid → paid → overdue → cancelled → written_off
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.invoiceFilterSchema = exports.updateInvoiceSchema = exports.bulkGenerateInvoiceSchema = exports.generateInvoiceSchema = exports.invoiceResponseSchema = exports.invoiceLineItemSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("./common");
12
+ const common_2 = require("../common");
13
+ // ============================================================================
14
+ // LINE ITEM
15
+ // ============================================================================
16
+ exports.invoiceLineItemSchema = zod_1.z.object({
17
+ id: common_2.uuidSchema,
18
+ feeStructureId: common_2.uuidSchema,
19
+ description: zod_1.z.string(),
20
+ amount: zod_1.z.number().min(0),
21
+ quantity: zod_1.z.number().int().min(1).default(1),
22
+ discount: zod_1.z.number().min(0).default(0),
23
+ discountReason: zod_1.z.string().optional(),
24
+ taxRate: zod_1.z.number().min(0).max(100),
25
+ taxAmount: zod_1.z.number().min(0),
26
+ total: zod_1.z.number(),
27
+ });
28
+ // ============================================================================
29
+ // RESPONSE
30
+ // ============================================================================
31
+ exports.invoiceResponseSchema = zod_1.z.object({
32
+ id: common_2.uuidSchema,
33
+ invoiceNumber: zod_1.z.string(),
34
+ studentAccountId: common_2.uuidSchema,
35
+ studentId: common_2.uuidSchema,
36
+ studentName: zod_1.z.string(),
37
+ schoolId: common_2.uuidSchema,
38
+ schoolName: zod_1.z.string(),
39
+ academicYear: zod_1.z.string(),
40
+ billingPeriod: zod_1.z.string().optional(),
41
+ lineItems: zod_1.z.array(exports.invoiceLineItemSchema),
42
+ subtotal: zod_1.z.number(),
43
+ taxTotal: zod_1.z.number(),
44
+ discountTotal: zod_1.z.number(),
45
+ grandTotal: zod_1.z.number(),
46
+ amountPaid: zod_1.z.number(),
47
+ amountDue: zod_1.z.number(),
48
+ currency: common_1.currencyEnum,
49
+ dueDate: zod_1.z.string(),
50
+ issuedDate: zod_1.z.string(),
51
+ status: common_1.invoiceStatusEnum,
52
+ notes: zod_1.z.string().optional(),
53
+ createdAt: zod_1.z.string(),
54
+ updatedAt: zod_1.z.string(),
55
+ });
56
+ // ============================================================================
57
+ // GENERATE (CREATE)
58
+ // ============================================================================
59
+ exports.generateInvoiceSchema = zod_1.z.object({
60
+ studentAccountId: common_2.uuidSchema,
61
+ academicYear: zod_1.z.string().min(1).max(20),
62
+ billingPeriod: zod_1.z.string().max(50).optional(),
63
+ feeStructureIds: zod_1.z.array(common_2.uuidSchema).min(1, 'At least one fee structure required'),
64
+ dueDate: common_2.dateSchema,
65
+ notes: zod_1.z.string().max(500).optional(),
66
+ discounts: zod_1.z.array(zod_1.z.object({
67
+ feeStructureId: common_2.uuidSchema,
68
+ amount: zod_1.z.number().positive(),
69
+ reason: zod_1.z.string().max(200).optional(),
70
+ })).optional(),
71
+ });
72
+ // ============================================================================
73
+ // BULK GENERATE
74
+ // ============================================================================
75
+ exports.bulkGenerateInvoiceSchema = zod_1.z.object({
76
+ studentAccountIds: zod_1.z.array(common_2.uuidSchema).min(1).max(500),
77
+ academicYear: zod_1.z.string().min(1).max(20),
78
+ billingPeriod: zod_1.z.string().max(50).optional(),
79
+ feeStructureIds: zod_1.z.array(common_2.uuidSchema).min(1),
80
+ dueDate: common_2.dateSchema,
81
+ notes: zod_1.z.string().max(500).optional(),
82
+ });
83
+ // ============================================================================
84
+ // UPDATE
85
+ // ============================================================================
86
+ exports.updateInvoiceSchema = zod_1.z.object({
87
+ status: common_1.invoiceStatusEnum.optional(),
88
+ notes: zod_1.z.string().max(500).optional(),
89
+ dueDate: common_2.dateSchema.optional(),
90
+ discounts: zod_1.z.array(zod_1.z.object({
91
+ lineItemId: common_2.uuidSchema,
92
+ amount: zod_1.z.number().positive(),
93
+ reason: zod_1.z.string().max(200).optional(),
94
+ })).optional(),
95
+ });
96
+ // ============================================================================
97
+ // FILTER
98
+ // ============================================================================
99
+ exports.invoiceFilterSchema = zod_1.z.object({
100
+ status: zod_1.z.union([common_1.invoiceStatusEnum, zod_1.z.array(common_1.invoiceStatusEnum)]).optional(),
101
+ studentId: common_2.uuidSchema.optional(),
102
+ academicYear: zod_1.z.string().optional(),
103
+ dueDateFrom: common_2.dateSchema.optional(),
104
+ dueDateTo: common_2.dateSchema.optional(),
105
+ searchTerm: zod_1.z.string().max(100).optional(),
106
+ });
107
+ //# sourceMappingURL=invoice.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.schema.js","sourceRoot":"","sources":["../../../src/schemas/finance/invoice.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Payment Gateway Configuration Schemas
3
+ *
4
+ * Public-facing gateway config is safe to send to browser.
5
+ * Credentials are NEVER included in public responses.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const paymentGatewayPublicConfigSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ schoolId: z.ZodString;
11
+ gateway: z.ZodEnum<["esewa", "khalti", "fonepay", "connectips", "stripe", "cash", "bank_transfer", "cheque"]>;
12
+ isEnabled: z.ZodBoolean;
13
+ isTestMode: z.ZodBoolean;
14
+ displayName: z.ZodString;
15
+ displayOrder: z.ZodNumber;
16
+ }, "strip", z.ZodTypeAny, {
17
+ schoolId: string;
18
+ displayName: string;
19
+ id: string;
20
+ gateway: "esewa" | "khalti" | "fonepay" | "connectips" | "stripe" | "cash" | "bank_transfer" | "cheque";
21
+ isEnabled: boolean;
22
+ isTestMode: boolean;
23
+ displayOrder: number;
24
+ }, {
25
+ schoolId: string;
26
+ displayName: string;
27
+ id: string;
28
+ gateway: "esewa" | "khalti" | "fonepay" | "connectips" | "stripe" | "cash" | "bank_transfer" | "cheque";
29
+ isEnabled: boolean;
30
+ isTestMode: boolean;
31
+ displayOrder: number;
32
+ }>;
33
+ export type PaymentGatewayPublicConfig = z.infer<typeof paymentGatewayPublicConfigSchema>;
34
+ export declare const paymentGatewayConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
35
+ id: z.ZodString;
36
+ schoolId: z.ZodString;
37
+ gateway: z.ZodEnum<["esewa", "khalti", "fonepay", "connectips", "stripe", "cash", "bank_transfer", "cheque"]>;
38
+ isEnabled: z.ZodBoolean;
39
+ isTestMode: z.ZodBoolean;
40
+ displayName: z.ZodString;
41
+ displayOrder: z.ZodNumber;
42
+ }, {
43
+ credentials: z.ZodRecord<z.ZodString, z.ZodString>;
44
+ }>, "strip", z.ZodTypeAny, {
45
+ schoolId: string;
46
+ displayName: string;
47
+ id: string;
48
+ gateway: "esewa" | "khalti" | "fonepay" | "connectips" | "stripe" | "cash" | "bank_transfer" | "cheque";
49
+ isEnabled: boolean;
50
+ isTestMode: boolean;
51
+ displayOrder: number;
52
+ credentials: Record<string, string>;
53
+ }, {
54
+ schoolId: string;
55
+ displayName: string;
56
+ id: string;
57
+ gateway: "esewa" | "khalti" | "fonepay" | "connectips" | "stripe" | "cash" | "bank_transfer" | "cheque";
58
+ isEnabled: boolean;
59
+ isTestMode: boolean;
60
+ displayOrder: number;
61
+ credentials: Record<string, string>;
62
+ }>;
63
+ export type PaymentGatewayConfig = z.infer<typeof paymentGatewayConfigSchema>;
64
+ export declare const saveGatewayConfigSchema: z.ZodObject<{
65
+ isEnabled: z.ZodBoolean;
66
+ isTestMode: z.ZodBoolean;
67
+ displayName: z.ZodOptional<z.ZodString>;
68
+ displayOrder: z.ZodOptional<z.ZodNumber>;
69
+ credentials: z.ZodRecord<z.ZodString, z.ZodString>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ isEnabled: boolean;
72
+ isTestMode: boolean;
73
+ credentials: Record<string, string>;
74
+ displayName?: string | undefined;
75
+ displayOrder?: number | undefined;
76
+ }, {
77
+ isEnabled: boolean;
78
+ isTestMode: boolean;
79
+ credentials: Record<string, string>;
80
+ displayName?: string | undefined;
81
+ displayOrder?: number | undefined;
82
+ }>;
83
+ export type SaveGatewayConfigDto = z.infer<typeof saveGatewayConfigSchema>;
84
+ //# sourceMappingURL=payment-gateway.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-gateway.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/finance/payment-gateway.schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;EAQ3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAM1F,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Payment Gateway Configuration Schemas
4
+ *
5
+ * Public-facing gateway config is safe to send to browser.
6
+ * Credentials are NEVER included in public responses.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.saveGatewayConfigSchema = exports.paymentGatewayConfigSchema = exports.paymentGatewayPublicConfigSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("./common");
12
+ const common_2 = require("../common");
13
+ // ============================================================================
14
+ // PUBLIC CONFIG (safe for browser)
15
+ // ============================================================================
16
+ exports.paymentGatewayPublicConfigSchema = zod_1.z.object({
17
+ id: common_2.uuidSchema,
18
+ schoolId: common_2.uuidSchema,
19
+ gateway: common_1.paymentGatewayEnum,
20
+ isEnabled: zod_1.z.boolean(),
21
+ isTestMode: zod_1.z.boolean(),
22
+ displayName: zod_1.z.string(),
23
+ displayOrder: zod_1.z.number().int().min(0),
24
+ });
25
+ // ============================================================================
26
+ // ADMIN CONFIG (credentials masked as `****` in API responses)
27
+ // ============================================================================
28
+ exports.paymentGatewayConfigSchema = exports.paymentGatewayPublicConfigSchema.extend({
29
+ credentials: zod_1.z.record(zod_1.z.string()),
30
+ });
31
+ // ============================================================================
32
+ // SAVE CONFIG (admin writes)
33
+ // ============================================================================
34
+ exports.saveGatewayConfigSchema = zod_1.z.object({
35
+ isEnabled: zod_1.z.boolean(),
36
+ isTestMode: zod_1.z.boolean(),
37
+ displayName: zod_1.z.string().min(1).max(100).optional(),
38
+ displayOrder: zod_1.z.number().int().min(0).optional(),
39
+ credentials: zod_1.z.record(zod_1.z.string()),
40
+ });
41
+ //# sourceMappingURL=payment-gateway.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-gateway.schema.js","sourceRoot":"","sources":["../../../src/schemas/finance/payment-gateway.schema.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6BAAwB;AACxB,qCAA8C;AAC9C,sCAAuC;AAEvC,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAElE,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACvD,EAAE,EAAE,mBAAU;IACd,QAAQ,EAAE,mBAAU;IACpB,OAAO,EAAE,2BAAkB;IAC3B,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;IACtB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC,CAAC;AAIH,+EAA+E;AAC/E,+DAA+D;AAC/D,+EAA+E;AAElE,QAAA,0BAA0B,GAAG,wCAAgC,CAAC,MAAM,CAAC;IAChF,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC;AAIH,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAElE,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;IACtB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CAClC,CAAC,CAAC"}