@aibrains/shared-types 0.15.0 → 0.17.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 (94) hide show
  1. package/dist/events/enrollment-billing.events.d.ts +47 -0
  2. package/dist/events/enrollment-billing.events.d.ts.map +1 -0
  3. package/dist/events/enrollment-billing.events.js +9 -0
  4. package/dist/events/enrollment-billing.events.js.map +1 -0
  5. package/dist/identity/country-config.d.ts +120 -0
  6. package/dist/identity/country-config.d.ts.map +1 -0
  7. package/dist/identity/country-config.js +404 -0
  8. package/dist/identity/country-config.js.map +1 -0
  9. package/dist/identity/field-governance.d.ts +40 -0
  10. package/dist/identity/field-governance.d.ts.map +1 -0
  11. package/dist/identity/field-governance.js +111 -0
  12. package/dist/identity/field-governance.js.map +1 -0
  13. package/dist/index.d.ts +6 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +9 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/mappers/edfi/education-org.mapper.js +3 -3
  18. package/dist/mappers/edfi/education-org.mapper.js.map +1 -1
  19. package/dist/schemas/academics/course.schema.d.ts +10 -10
  20. package/dist/schemas/common.d.ts +3 -2
  21. package/dist/schemas/common.d.ts.map +1 -1
  22. package/dist/schemas/common.js +5 -4
  23. package/dist/schemas/common.js.map +1 -1
  24. package/dist/schemas/enrollment/enrollment.schema.d.ts +12 -12
  25. package/dist/schemas/finance/common.d.ts +1 -1
  26. package/dist/schemas/finance/common.d.ts.map +1 -1
  27. package/dist/schemas/finance/common.js +1 -1
  28. package/dist/schemas/finance/common.js.map +1 -1
  29. package/dist/schemas/finance/credit-note.schema.d.ts +127 -0
  30. package/dist/schemas/finance/credit-note.schema.d.ts.map +1 -0
  31. package/dist/schemas/finance/credit-note.schema.js +55 -0
  32. package/dist/schemas/finance/credit-note.schema.js.map +1 -0
  33. package/dist/schemas/finance/discount-rule.schema.d.ts +447 -0
  34. package/dist/schemas/finance/discount-rule.schema.d.ts.map +1 -0
  35. package/dist/schemas/finance/discount-rule.schema.js +58 -0
  36. package/dist/schemas/finance/discount-rule.schema.js.map +1 -0
  37. package/dist/schemas/finance/fee-structure.schema.d.ts +36 -6
  38. package/dist/schemas/finance/fee-structure.schema.d.ts.map +1 -1
  39. package/dist/schemas/finance/fee-structure.schema.js +10 -0
  40. package/dist/schemas/finance/fee-structure.schema.js.map +1 -1
  41. package/dist/schemas/finance/index.d.ts +3 -0
  42. package/dist/schemas/finance/index.d.ts.map +1 -1
  43. package/dist/schemas/finance/index.js +3 -0
  44. package/dist/schemas/finance/index.js.map +1 -1
  45. package/dist/schemas/finance/invoice.schema.d.ts +63 -3
  46. package/dist/schemas/finance/invoice.schema.d.ts.map +1 -1
  47. package/dist/schemas/finance/invoice.schema.js +10 -1
  48. package/dist/schemas/finance/invoice.schema.js.map +1 -1
  49. package/dist/schemas/finance/payment.schema.d.ts +22 -22
  50. package/dist/schemas/finance/refund.schema.d.ts +101 -0
  51. package/dist/schemas/finance/refund.schema.d.ts.map +1 -0
  52. package/dist/schemas/finance/refund.schema.js +47 -0
  53. package/dist/schemas/finance/refund.schema.js.map +1 -0
  54. package/dist/schemas/identity/academic-year.schema.d.ts +14 -14
  55. package/dist/schemas/identity/department.schema.d.ts +6 -6
  56. package/dist/schemas/identity/index.d.ts +2 -0
  57. package/dist/schemas/identity/index.d.ts.map +1 -1
  58. package/dist/schemas/identity/index.js +4 -0
  59. package/dist/schemas/identity/index.js.map +1 -1
  60. package/dist/schemas/identity/leave.schema.d.ts +26 -26
  61. package/dist/schemas/identity/role.schema.d.ts +12 -12
  62. package/dist/schemas/identity/school-year.schema.d.ts +18 -18
  63. package/dist/schemas/identity/school.schema.d.ts +609 -120
  64. package/dist/schemas/identity/school.schema.d.ts.map +1 -1
  65. package/dist/schemas/identity/school.schema.js +32 -8
  66. package/dist/schemas/identity/school.schema.js.map +1 -1
  67. package/dist/schemas/identity/staff-assignment.schema.d.ts +22 -14
  68. package/dist/schemas/identity/staff-assignment.schema.d.ts.map +1 -1
  69. package/dist/schemas/identity/staff-assignment.schema.js +4 -3
  70. package/dist/schemas/identity/staff-assignment.schema.js.map +1 -1
  71. package/dist/schemas/identity/staff.schema.d.ts +85 -50
  72. package/dist/schemas/identity/staff.schema.d.ts.map +1 -1
  73. package/dist/schemas/identity/staff.schema.js +7 -5
  74. package/dist/schemas/identity/staff.schema.js.map +1 -1
  75. package/dist/schemas/identity/user.schema.d.ts +3 -3
  76. package/dist/schemas/identity/user.schema.js +1 -1
  77. package/dist/schemas/identity/user.schema.js.map +1 -1
  78. package/dist/utils/bikram-sambat.d.ts +68 -0
  79. package/dist/utils/bikram-sambat.d.ts.map +1 -0
  80. package/dist/utils/bikram-sambat.js +301 -0
  81. package/dist/utils/bikram-sambat.js.map +1 -0
  82. package/dist/utils/currency.d.ts +30 -8
  83. package/dist/utils/currency.d.ts.map +1 -1
  84. package/dist/utils/currency.js +93 -25
  85. package/dist/utils/currency.js.map +1 -1
  86. package/dist/utils/date-format.d.ts +20 -0
  87. package/dist/utils/date-format.d.ts.map +1 -0
  88. package/dist/utils/date-format.js +66 -0
  89. package/dist/utils/date-format.js.map +1 -0
  90. package/dist/utils/school-hours.d.ts +48 -0
  91. package/dist/utils/school-hours.d.ts.map +1 -0
  92. package/dist/utils/school-hours.js +134 -0
  93. package/dist/utils/school-hours.js.map +1 -0
  94. package/package.json +1 -1
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Credit Note Schemas
3
+ *
4
+ * Scholarships, grants, refund credits, fee waivers, adjustments.
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const creditNoteTypeEnum: z.ZodEnum<["scholarship", "grant", "refund", "adjustment", "fee_waiver"]>;
8
+ export type CreditNoteType = z.infer<typeof creditNoteTypeEnum>;
9
+ export declare const creditNoteStatusEnum: z.ZodEnum<["active", "applied", "expired", "cancelled"]>;
10
+ export type CreditNoteStatus = z.infer<typeof creditNoteStatusEnum>;
11
+ export declare const creditNoteResponseSchema: z.ZodObject<{
12
+ id: z.ZodString;
13
+ studentAccountId: z.ZodString;
14
+ studentId: z.ZodString;
15
+ schoolId: z.ZodString;
16
+ amount: z.ZodNumber;
17
+ remainingAmount: z.ZodNumber;
18
+ currency: z.ZodEnum<["NPR", "USD", "INR", "GBP", "AUD", "CAD"]>;
19
+ type: z.ZodEnum<["scholarship", "grant", "refund", "adjustment", "fee_waiver"]>;
20
+ description: z.ZodString;
21
+ fundingSource: z.ZodOptional<z.ZodString>;
22
+ appliedToInvoices: z.ZodDefault<z.ZodArray<z.ZodObject<{
23
+ invoiceId: z.ZodString;
24
+ amount: z.ZodNumber;
25
+ appliedAt: z.ZodString;
26
+ }, "strip", z.ZodTypeAny, {
27
+ amount: number;
28
+ invoiceId: string;
29
+ appliedAt: string;
30
+ }, {
31
+ amount: number;
32
+ invoiceId: string;
33
+ appliedAt: string;
34
+ }>, "many">>;
35
+ status: z.ZodEnum<["active", "applied", "expired", "cancelled"]>;
36
+ effectiveDate: z.ZodString;
37
+ expiryDate: z.ZodNullable<z.ZodOptional<z.ZodString>>;
38
+ approvedBy: z.ZodString;
39
+ createdAt: z.ZodString;
40
+ updatedAt: z.ZodString;
41
+ }, "strip", z.ZodTypeAny, {
42
+ type: "refund" | "adjustment" | "scholarship" | "grant" | "fee_waiver";
43
+ status: "active" | "expired" | "cancelled" | "applied";
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ schoolId: string;
47
+ description: string;
48
+ effectiveDate: string;
49
+ studentId: string;
50
+ id: string;
51
+ approvedBy: string;
52
+ amount: number;
53
+ currency: "NPR" | "USD" | "INR" | "GBP" | "CAD" | "AUD";
54
+ studentAccountId: string;
55
+ remainingAmount: number;
56
+ appliedToInvoices: {
57
+ amount: number;
58
+ invoiceId: string;
59
+ appliedAt: string;
60
+ }[];
61
+ fundingSource?: string | undefined;
62
+ expiryDate?: string | null | undefined;
63
+ }, {
64
+ type: "refund" | "adjustment" | "scholarship" | "grant" | "fee_waiver";
65
+ status: "active" | "expired" | "cancelled" | "applied";
66
+ createdAt: string;
67
+ updatedAt: string;
68
+ schoolId: string;
69
+ description: string;
70
+ effectiveDate: string;
71
+ studentId: string;
72
+ id: string;
73
+ approvedBy: string;
74
+ amount: number;
75
+ currency: "NPR" | "USD" | "INR" | "GBP" | "CAD" | "AUD";
76
+ studentAccountId: string;
77
+ remainingAmount: number;
78
+ fundingSource?: string | undefined;
79
+ appliedToInvoices?: {
80
+ amount: number;
81
+ invoiceId: string;
82
+ appliedAt: string;
83
+ }[] | undefined;
84
+ expiryDate?: string | null | undefined;
85
+ }>;
86
+ export type CreditNote = z.infer<typeof creditNoteResponseSchema>;
87
+ export declare const createCreditNoteSchema: z.ZodObject<{
88
+ studentId: z.ZodString;
89
+ amount: z.ZodNumber;
90
+ currency: z.ZodDefault<z.ZodEnum<["NPR", "USD", "INR", "GBP", "AUD", "CAD"]>>;
91
+ type: z.ZodEnum<["scholarship", "grant", "refund", "adjustment", "fee_waiver"]>;
92
+ description: z.ZodString;
93
+ fundingSource: z.ZodOptional<z.ZodString>;
94
+ effectiveDate: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
95
+ expiryDate: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ type: "refund" | "adjustment" | "scholarship" | "grant" | "fee_waiver";
98
+ description: string;
99
+ effectiveDate: string;
100
+ studentId: string;
101
+ amount: number;
102
+ currency: "NPR" | "USD" | "INR" | "GBP" | "CAD" | "AUD";
103
+ fundingSource?: string | undefined;
104
+ expiryDate?: string | undefined;
105
+ }, {
106
+ type: "refund" | "adjustment" | "scholarship" | "grant" | "fee_waiver";
107
+ description: string;
108
+ effectiveDate: string;
109
+ studentId: string;
110
+ amount: number;
111
+ currency?: "NPR" | "USD" | "INR" | "GBP" | "CAD" | "AUD" | undefined;
112
+ fundingSource?: string | undefined;
113
+ expiryDate?: string | undefined;
114
+ }>;
115
+ export type CreateCreditNoteDto = z.infer<typeof createCreditNoteSchema>;
116
+ export declare const applyCreditNoteSchema: z.ZodObject<{
117
+ invoiceId: z.ZodString;
118
+ amount: z.ZodNumber;
119
+ }, "strip", z.ZodTypeAny, {
120
+ amount: number;
121
+ invoiceId: string;
122
+ }, {
123
+ amount: number;
124
+ invoiceId: string;
125
+ }>;
126
+ export type ApplyCreditNoteDto = z.infer<typeof applyCreditNoteSchema>;
127
+ //# sourceMappingURL=credit-note.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-note.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/finance/credit-note.schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,kBAAkB,2EAE7B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB,0DAE/B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEpE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBnC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAElE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * Credit Note Schemas
4
+ *
5
+ * Scholarships, grants, refund credits, fee waivers, adjustments.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.applyCreditNoteSchema = exports.createCreditNoteSchema = exports.creditNoteResponseSchema = exports.creditNoteStatusEnum = exports.creditNoteTypeEnum = void 0;
9
+ const zod_1 = require("zod");
10
+ const common_1 = require("./common");
11
+ const common_2 = require("../common");
12
+ exports.creditNoteTypeEnum = zod_1.z.enum([
13
+ 'scholarship', 'grant', 'refund', 'adjustment', 'fee_waiver',
14
+ ]);
15
+ exports.creditNoteStatusEnum = zod_1.z.enum([
16
+ 'active', 'applied', 'expired', 'cancelled',
17
+ ]);
18
+ exports.creditNoteResponseSchema = zod_1.z.object({
19
+ id: common_2.uuidSchema,
20
+ studentAccountId: common_2.uuidSchema,
21
+ studentId: common_2.uuidSchema,
22
+ schoolId: common_2.uuidSchema,
23
+ amount: common_1.amountSchema,
24
+ remainingAmount: common_1.amountSchema,
25
+ currency: common_1.currencyEnum,
26
+ type: exports.creditNoteTypeEnum,
27
+ description: zod_1.z.string(),
28
+ fundingSource: zod_1.z.string().optional(),
29
+ appliedToInvoices: zod_1.z.array(zod_1.z.object({
30
+ invoiceId: common_2.uuidSchema,
31
+ amount: zod_1.z.number().min(0),
32
+ appliedAt: zod_1.z.string(),
33
+ })).default([]),
34
+ status: exports.creditNoteStatusEnum,
35
+ effectiveDate: zod_1.z.string(),
36
+ expiryDate: zod_1.z.string().optional().nullable(),
37
+ approvedBy: zod_1.z.string(),
38
+ createdAt: zod_1.z.string(),
39
+ updatedAt: zod_1.z.string(),
40
+ });
41
+ exports.createCreditNoteSchema = zod_1.z.object({
42
+ studentId: common_2.uuidSchema,
43
+ amount: common_1.amountSchema.positive('Amount must be greater than 0'),
44
+ currency: common_1.currencyEnum.default('NPR'),
45
+ type: exports.creditNoteTypeEnum,
46
+ description: zod_1.z.string().min(1).max(500),
47
+ fundingSource: zod_1.z.string().max(200).optional(),
48
+ effectiveDate: common_2.dateSchema,
49
+ expiryDate: common_2.dateSchema.optional(),
50
+ });
51
+ exports.applyCreditNoteSchema = zod_1.z.object({
52
+ invoiceId: common_2.uuidSchema,
53
+ amount: common_1.amountSchema.positive('Amount must be greater than 0'),
54
+ });
55
+ //# sourceMappingURL=credit-note.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-note.schema.js","sourceRoot":"","sources":["../../../src/schemas/finance/credit-note.schema.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6BAAwB;AACxB,qCAAsD;AACtD,sCAAmD;AAEtC,QAAA,kBAAkB,GAAG,OAAC,CAAC,IAAI,CAAC;IACvC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY;CAC7D,CAAC,CAAC;AAGU,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC;IACzC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW;CAC5C,CAAC,CAAC;AAGU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,mBAAU;IACd,gBAAgB,EAAE,mBAAU;IAC5B,SAAS,EAAE,mBAAU;IACrB,QAAQ,EAAE,mBAAU;IACpB,MAAM,EAAE,qBAAY;IACpB,eAAe,EAAE,qBAAY;IAC7B,QAAQ,EAAE,qBAAY;IACtB,IAAI,EAAE,0BAAkB;IACxB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;QAClC,SAAS,EAAE,mBAAU;QACrB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;KACtB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACf,MAAM,EAAE,4BAAoB;IAC5B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAIU,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,mBAAU;IACrB,MAAM,EAAE,qBAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,QAAQ,EAAE,qBAAY,CAAC,OAAO,CAAC,KAAK,CAAC;IACrC,IAAI,EAAE,0BAAkB;IACxB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7C,aAAa,EAAE,mBAAU;IACzB,UAAU,EAAE,mBAAU,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAIU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,mBAAU;IACrB,MAAM,EAAE,qBAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC/D,CAAC,CAAC"}
@@ -0,0 +1,447 @@
1
+ /**
2
+ * Discount Rule Schemas
3
+ *
4
+ * Rules for automatic and manual discounts:
5
+ * sibling discounts, early payment, scholarships, staff child, manual.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const discountConditionSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
9
+ type: z.ZodLiteral<"sibling">;
10
+ minSiblings: z.ZodDefault<z.ZodNumber>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ type: "sibling";
13
+ minSiblings: number;
14
+ }, {
15
+ type: "sibling";
16
+ minSiblings?: number | undefined;
17
+ }>, z.ZodObject<{
18
+ type: z.ZodLiteral<"early_payment">;
19
+ daysBefore: z.ZodNumber;
20
+ }, "strip", z.ZodTypeAny, {
21
+ type: "early_payment";
22
+ daysBefore: number;
23
+ }, {
24
+ type: "early_payment";
25
+ daysBefore: number;
26
+ }>, z.ZodObject<{
27
+ type: z.ZodLiteral<"scholarship">;
28
+ scholarshipId: z.ZodString;
29
+ }, "strip", z.ZodTypeAny, {
30
+ type: "scholarship";
31
+ scholarshipId: string;
32
+ }, {
33
+ type: "scholarship";
34
+ scholarshipId: string;
35
+ }>, z.ZodObject<{
36
+ type: z.ZodLiteral<"staff_child">;
37
+ }, "strip", z.ZodTypeAny, {
38
+ type: "staff_child";
39
+ }, {
40
+ type: "staff_child";
41
+ }>, z.ZodObject<{
42
+ type: z.ZodLiteral<"manual">;
43
+ }, "strip", z.ZodTypeAny, {
44
+ type: "manual";
45
+ }, {
46
+ type: "manual";
47
+ }>]>;
48
+ export type DiscountCondition = z.infer<typeof discountConditionSchema>;
49
+ export declare const discountRuleResponseSchema: z.ZodObject<{
50
+ id: z.ZodString;
51
+ schoolId: z.ZodString;
52
+ academicYearId: z.ZodString;
53
+ name: z.ZodString;
54
+ description: z.ZodOptional<z.ZodString>;
55
+ type: z.ZodEnum<["percentage", "fixed"]>;
56
+ value: z.ZodNumber;
57
+ applicableFeeTypes: z.ZodArray<z.ZodEnum<["tuition", "admission", "exam", "transport", "library", "lab", "hostel", "uniform", "miscellaneous", "custom"]>, "many">;
58
+ condition: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
59
+ type: z.ZodLiteral<"sibling">;
60
+ minSiblings: z.ZodDefault<z.ZodNumber>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ type: "sibling";
63
+ minSiblings: number;
64
+ }, {
65
+ type: "sibling";
66
+ minSiblings?: number | undefined;
67
+ }>, z.ZodObject<{
68
+ type: z.ZodLiteral<"early_payment">;
69
+ daysBefore: z.ZodNumber;
70
+ }, "strip", z.ZodTypeAny, {
71
+ type: "early_payment";
72
+ daysBefore: number;
73
+ }, {
74
+ type: "early_payment";
75
+ daysBefore: number;
76
+ }>, z.ZodObject<{
77
+ type: z.ZodLiteral<"scholarship">;
78
+ scholarshipId: z.ZodString;
79
+ }, "strip", z.ZodTypeAny, {
80
+ type: "scholarship";
81
+ scholarshipId: string;
82
+ }, {
83
+ type: "scholarship";
84
+ scholarshipId: string;
85
+ }>, z.ZodObject<{
86
+ type: z.ZodLiteral<"staff_child">;
87
+ }, "strip", z.ZodTypeAny, {
88
+ type: "staff_child";
89
+ }, {
90
+ type: "staff_child";
91
+ }>, z.ZodObject<{
92
+ type: z.ZodLiteral<"manual">;
93
+ }, "strip", z.ZodTypeAny, {
94
+ type: "manual";
95
+ }, {
96
+ type: "manual";
97
+ }>]>;
98
+ priority: z.ZodDefault<z.ZodNumber>;
99
+ isActive: z.ZodBoolean;
100
+ maxDiscountAmount: z.ZodOptional<z.ZodNumber>;
101
+ createdAt: z.ZodString;
102
+ updatedAt: z.ZodString;
103
+ }, "strip", z.ZodTypeAny, {
104
+ type: "percentage" | "fixed";
105
+ value: number;
106
+ createdAt: string;
107
+ updatedAt: string;
108
+ name: string;
109
+ schoolId: string;
110
+ isActive: boolean;
111
+ id: string;
112
+ academicYearId: string;
113
+ priority: number;
114
+ applicableFeeTypes: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[];
115
+ condition: {
116
+ type: "sibling";
117
+ minSiblings: number;
118
+ } | {
119
+ type: "early_payment";
120
+ daysBefore: number;
121
+ } | {
122
+ type: "scholarship";
123
+ scholarshipId: string;
124
+ } | {
125
+ type: "staff_child";
126
+ } | {
127
+ type: "manual";
128
+ };
129
+ description?: string | undefined;
130
+ maxDiscountAmount?: number | undefined;
131
+ }, {
132
+ type: "percentage" | "fixed";
133
+ value: number;
134
+ createdAt: string;
135
+ updatedAt: string;
136
+ name: string;
137
+ schoolId: string;
138
+ isActive: boolean;
139
+ id: string;
140
+ academicYearId: string;
141
+ applicableFeeTypes: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[];
142
+ condition: {
143
+ type: "sibling";
144
+ minSiblings?: number | undefined;
145
+ } | {
146
+ type: "early_payment";
147
+ daysBefore: number;
148
+ } | {
149
+ type: "scholarship";
150
+ scholarshipId: string;
151
+ } | {
152
+ type: "staff_child";
153
+ } | {
154
+ type: "manual";
155
+ };
156
+ description?: string | undefined;
157
+ priority?: number | undefined;
158
+ maxDiscountAmount?: number | undefined;
159
+ }>;
160
+ export type DiscountRule = z.infer<typeof discountRuleResponseSchema>;
161
+ export declare const createDiscountRuleSchema: z.ZodEffects<z.ZodObject<{
162
+ name: z.ZodString;
163
+ description: z.ZodOptional<z.ZodString>;
164
+ academicYearId: z.ZodString;
165
+ type: z.ZodEnum<["percentage", "fixed"]>;
166
+ value: z.ZodNumber;
167
+ applicableFeeTypes: z.ZodArray<z.ZodEnum<["tuition", "admission", "exam", "transport", "library", "lab", "hostel", "uniform", "miscellaneous", "custom"]>, "many">;
168
+ condition: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
169
+ type: z.ZodLiteral<"sibling">;
170
+ minSiblings: z.ZodDefault<z.ZodNumber>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ type: "sibling";
173
+ minSiblings: number;
174
+ }, {
175
+ type: "sibling";
176
+ minSiblings?: number | undefined;
177
+ }>, z.ZodObject<{
178
+ type: z.ZodLiteral<"early_payment">;
179
+ daysBefore: z.ZodNumber;
180
+ }, "strip", z.ZodTypeAny, {
181
+ type: "early_payment";
182
+ daysBefore: number;
183
+ }, {
184
+ type: "early_payment";
185
+ daysBefore: number;
186
+ }>, z.ZodObject<{
187
+ type: z.ZodLiteral<"scholarship">;
188
+ scholarshipId: z.ZodString;
189
+ }, "strip", z.ZodTypeAny, {
190
+ type: "scholarship";
191
+ scholarshipId: string;
192
+ }, {
193
+ type: "scholarship";
194
+ scholarshipId: string;
195
+ }>, z.ZodObject<{
196
+ type: z.ZodLiteral<"staff_child">;
197
+ }, "strip", z.ZodTypeAny, {
198
+ type: "staff_child";
199
+ }, {
200
+ type: "staff_child";
201
+ }>, z.ZodObject<{
202
+ type: z.ZodLiteral<"manual">;
203
+ }, "strip", z.ZodTypeAny, {
204
+ type: "manual";
205
+ }, {
206
+ type: "manual";
207
+ }>]>;
208
+ priority: z.ZodDefault<z.ZodNumber>;
209
+ maxDiscountAmount: z.ZodOptional<z.ZodNumber>;
210
+ }, "strip", z.ZodTypeAny, {
211
+ type: "percentage" | "fixed";
212
+ value: number;
213
+ name: string;
214
+ academicYearId: string;
215
+ priority: number;
216
+ applicableFeeTypes: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[];
217
+ condition: {
218
+ type: "sibling";
219
+ minSiblings: number;
220
+ } | {
221
+ type: "early_payment";
222
+ daysBefore: number;
223
+ } | {
224
+ type: "scholarship";
225
+ scholarshipId: string;
226
+ } | {
227
+ type: "staff_child";
228
+ } | {
229
+ type: "manual";
230
+ };
231
+ description?: string | undefined;
232
+ maxDiscountAmount?: number | undefined;
233
+ }, {
234
+ type: "percentage" | "fixed";
235
+ value: number;
236
+ name: string;
237
+ academicYearId: string;
238
+ applicableFeeTypes: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[];
239
+ condition: {
240
+ type: "sibling";
241
+ minSiblings?: number | undefined;
242
+ } | {
243
+ type: "early_payment";
244
+ daysBefore: number;
245
+ } | {
246
+ type: "scholarship";
247
+ scholarshipId: string;
248
+ } | {
249
+ type: "staff_child";
250
+ } | {
251
+ type: "manual";
252
+ };
253
+ description?: string | undefined;
254
+ priority?: number | undefined;
255
+ maxDiscountAmount?: number | undefined;
256
+ }>, {
257
+ type: "percentage" | "fixed";
258
+ value: number;
259
+ name: string;
260
+ academicYearId: string;
261
+ priority: number;
262
+ applicableFeeTypes: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[];
263
+ condition: {
264
+ type: "sibling";
265
+ minSiblings: number;
266
+ } | {
267
+ type: "early_payment";
268
+ daysBefore: number;
269
+ } | {
270
+ type: "scholarship";
271
+ scholarshipId: string;
272
+ } | {
273
+ type: "staff_child";
274
+ } | {
275
+ type: "manual";
276
+ };
277
+ description?: string | undefined;
278
+ maxDiscountAmount?: number | undefined;
279
+ }, {
280
+ type: "percentage" | "fixed";
281
+ value: number;
282
+ name: string;
283
+ academicYearId: string;
284
+ applicableFeeTypes: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[];
285
+ condition: {
286
+ type: "sibling";
287
+ minSiblings?: number | undefined;
288
+ } | {
289
+ type: "early_payment";
290
+ daysBefore: number;
291
+ } | {
292
+ type: "scholarship";
293
+ scholarshipId: string;
294
+ } | {
295
+ type: "staff_child";
296
+ } | {
297
+ type: "manual";
298
+ };
299
+ description?: string | undefined;
300
+ priority?: number | undefined;
301
+ maxDiscountAmount?: number | undefined;
302
+ }>;
303
+ export type CreateDiscountRuleDto = z.infer<typeof createDiscountRuleSchema>;
304
+ export declare const updateDiscountRuleSchema: z.ZodEffects<z.ZodObject<{
305
+ name: z.ZodOptional<z.ZodString>;
306
+ description: z.ZodOptional<z.ZodString>;
307
+ type: z.ZodOptional<z.ZodEnum<["percentage", "fixed"]>>;
308
+ value: z.ZodOptional<z.ZodNumber>;
309
+ applicableFeeTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["tuition", "admission", "exam", "transport", "library", "lab", "hostel", "uniform", "miscellaneous", "custom"]>, "many">>;
310
+ condition: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
311
+ type: z.ZodLiteral<"sibling">;
312
+ minSiblings: z.ZodDefault<z.ZodNumber>;
313
+ }, "strip", z.ZodTypeAny, {
314
+ type: "sibling";
315
+ minSiblings: number;
316
+ }, {
317
+ type: "sibling";
318
+ minSiblings?: number | undefined;
319
+ }>, z.ZodObject<{
320
+ type: z.ZodLiteral<"early_payment">;
321
+ daysBefore: z.ZodNumber;
322
+ }, "strip", z.ZodTypeAny, {
323
+ type: "early_payment";
324
+ daysBefore: number;
325
+ }, {
326
+ type: "early_payment";
327
+ daysBefore: number;
328
+ }>, z.ZodObject<{
329
+ type: z.ZodLiteral<"scholarship">;
330
+ scholarshipId: z.ZodString;
331
+ }, "strip", z.ZodTypeAny, {
332
+ type: "scholarship";
333
+ scholarshipId: string;
334
+ }, {
335
+ type: "scholarship";
336
+ scholarshipId: string;
337
+ }>, z.ZodObject<{
338
+ type: z.ZodLiteral<"staff_child">;
339
+ }, "strip", z.ZodTypeAny, {
340
+ type: "staff_child";
341
+ }, {
342
+ type: "staff_child";
343
+ }>, z.ZodObject<{
344
+ type: z.ZodLiteral<"manual">;
345
+ }, "strip", z.ZodTypeAny, {
346
+ type: "manual";
347
+ }, {
348
+ type: "manual";
349
+ }>]>>;
350
+ priority: z.ZodOptional<z.ZodNumber>;
351
+ isActive: z.ZodOptional<z.ZodBoolean>;
352
+ maxDiscountAmount: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
353
+ }, "strip", z.ZodTypeAny, {
354
+ type?: "percentage" | "fixed" | undefined;
355
+ value?: number | undefined;
356
+ name?: string | undefined;
357
+ isActive?: boolean | undefined;
358
+ description?: string | undefined;
359
+ priority?: number | undefined;
360
+ applicableFeeTypes?: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[] | undefined;
361
+ condition?: {
362
+ type: "sibling";
363
+ minSiblings: number;
364
+ } | {
365
+ type: "early_payment";
366
+ daysBefore: number;
367
+ } | {
368
+ type: "scholarship";
369
+ scholarshipId: string;
370
+ } | {
371
+ type: "staff_child";
372
+ } | {
373
+ type: "manual";
374
+ } | undefined;
375
+ maxDiscountAmount?: number | null | undefined;
376
+ }, {
377
+ type?: "percentage" | "fixed" | undefined;
378
+ value?: number | undefined;
379
+ name?: string | undefined;
380
+ isActive?: boolean | undefined;
381
+ description?: string | undefined;
382
+ priority?: number | undefined;
383
+ applicableFeeTypes?: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[] | undefined;
384
+ condition?: {
385
+ type: "sibling";
386
+ minSiblings?: number | undefined;
387
+ } | {
388
+ type: "early_payment";
389
+ daysBefore: number;
390
+ } | {
391
+ type: "scholarship";
392
+ scholarshipId: string;
393
+ } | {
394
+ type: "staff_child";
395
+ } | {
396
+ type: "manual";
397
+ } | undefined;
398
+ maxDiscountAmount?: number | null | undefined;
399
+ }>, {
400
+ type?: "percentage" | "fixed" | undefined;
401
+ value?: number | undefined;
402
+ name?: string | undefined;
403
+ isActive?: boolean | undefined;
404
+ description?: string | undefined;
405
+ priority?: number | undefined;
406
+ applicableFeeTypes?: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[] | undefined;
407
+ condition?: {
408
+ type: "sibling";
409
+ minSiblings: number;
410
+ } | {
411
+ type: "early_payment";
412
+ daysBefore: number;
413
+ } | {
414
+ type: "scholarship";
415
+ scholarshipId: string;
416
+ } | {
417
+ type: "staff_child";
418
+ } | {
419
+ type: "manual";
420
+ } | undefined;
421
+ maxDiscountAmount?: number | null | undefined;
422
+ }, {
423
+ type?: "percentage" | "fixed" | undefined;
424
+ value?: number | undefined;
425
+ name?: string | undefined;
426
+ isActive?: boolean | undefined;
427
+ description?: string | undefined;
428
+ priority?: number | undefined;
429
+ applicableFeeTypes?: ("custom" | "lab" | "library" | "exam" | "tuition" | "admission" | "transport" | "hostel" | "uniform" | "miscellaneous")[] | undefined;
430
+ condition?: {
431
+ type: "sibling";
432
+ minSiblings?: number | undefined;
433
+ } | {
434
+ type: "early_payment";
435
+ daysBefore: number;
436
+ } | {
437
+ type: "scholarship";
438
+ scholarshipId: string;
439
+ } | {
440
+ type: "staff_child";
441
+ } | {
442
+ type: "manual";
443
+ } | undefined;
444
+ maxDiscountAmount?: number | null | undefined;
445
+ }>;
446
+ export type UpdateDiscountRuleDto = z.infer<typeof updateDiscountRuleSchema>;
447
+ //# sourceMappingURL=discount-rule.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discount-rule.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/finance/discount-rule.schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAerC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAapC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE7E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAapC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}