@aibrains/shared-types 0.11.0 → 0.13.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.
- package/dist/schemas/academics/course-section.schema.d.ts +8 -0
- package/dist/schemas/academics/course-section.schema.d.ts.map +1 -1
- package/dist/schemas/academics/course-section.schema.js +2 -0
- package/dist/schemas/academics/course-section.schema.js.map +1 -1
- package/dist/schemas/academics/student.schema.d.ts +12 -12
- package/dist/schemas/enrollment/enrollment.schema.d.ts +32 -32
- package/dist/schemas/identity/calendar-date.schema.d.ts +48 -48
- package/dist/schemas/identity/calendar.schema.d.ts +10 -10
- package/dist/schemas/identity/grade-levels.d.ts +125 -0
- package/dist/schemas/identity/grade-levels.d.ts.map +1 -0
- package/dist/schemas/identity/grade-levels.js +222 -0
- package/dist/schemas/identity/grade-levels.js.map +1 -0
- package/dist/schemas/identity/index.d.ts +1 -0
- package/dist/schemas/identity/index.d.ts.map +1 -1
- package/dist/schemas/identity/index.js +2 -0
- package/dist/schemas/identity/index.js.map +1 -1
- package/dist/schemas/identity/leave.schema.d.ts +26 -26
- package/dist/schemas/identity/school.schema.d.ts +474 -2
- package/dist/schemas/identity/school.schema.d.ts.map +1 -1
- package/dist/schemas/identity/school.schema.js +29 -2
- package/dist/schemas/identity/school.schema.js.map +1 -1
- package/dist/schemas/identity/staff.schema.d.ts +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grade Level Constants — Shared across all EdForge apps
|
|
3
|
+
*
|
|
4
|
+
* Canonical definitions for grade ordering, display labels,
|
|
5
|
+
* EdFi descriptor mapping, and school-type-to-grade-range defaults.
|
|
6
|
+
*
|
|
7
|
+
* IMPORTANT: This is the single source of truth for grade-level constants.
|
|
8
|
+
* Do NOT duplicate these arrays in other files — import from here.
|
|
9
|
+
*/
|
|
10
|
+
/** Canonical ordered grade codes from earliest to latest */
|
|
11
|
+
export declare const ORDERED_GRADES: readonly ["PK", "K", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
|
|
12
|
+
export type GradeCode = (typeof ORDERED_GRADES)[number];
|
|
13
|
+
/** Grade display options for dropdowns and tables (PK–12) */
|
|
14
|
+
export declare const GRADE_LEVEL_OPTIONS: readonly [{
|
|
15
|
+
readonly value: "PK";
|
|
16
|
+
readonly label: "Pre-K";
|
|
17
|
+
}, {
|
|
18
|
+
readonly value: "K";
|
|
19
|
+
readonly label: "Kindergarten";
|
|
20
|
+
}, {
|
|
21
|
+
readonly value: "1";
|
|
22
|
+
readonly label: "Grade 1";
|
|
23
|
+
}, {
|
|
24
|
+
readonly value: "2";
|
|
25
|
+
readonly label: "Grade 2";
|
|
26
|
+
}, {
|
|
27
|
+
readonly value: "3";
|
|
28
|
+
readonly label: "Grade 3";
|
|
29
|
+
}, {
|
|
30
|
+
readonly value: "4";
|
|
31
|
+
readonly label: "Grade 4";
|
|
32
|
+
}, {
|
|
33
|
+
readonly value: "5";
|
|
34
|
+
readonly label: "Grade 5";
|
|
35
|
+
}, {
|
|
36
|
+
readonly value: "6";
|
|
37
|
+
readonly label: "Grade 6";
|
|
38
|
+
}, {
|
|
39
|
+
readonly value: "7";
|
|
40
|
+
readonly label: "Grade 7";
|
|
41
|
+
}, {
|
|
42
|
+
readonly value: "8";
|
|
43
|
+
readonly label: "Grade 8";
|
|
44
|
+
}, {
|
|
45
|
+
readonly value: "9";
|
|
46
|
+
readonly label: "Grade 9";
|
|
47
|
+
}, {
|
|
48
|
+
readonly value: "10";
|
|
49
|
+
readonly label: "Grade 10";
|
|
50
|
+
}, {
|
|
51
|
+
readonly value: "11";
|
|
52
|
+
readonly label: "Grade 11";
|
|
53
|
+
}, {
|
|
54
|
+
readonly value: "12";
|
|
55
|
+
readonly label: "Grade 12";
|
|
56
|
+
}];
|
|
57
|
+
/** Get display label for a grade code. Returns the code itself if not found. */
|
|
58
|
+
export declare function getGradeLevelLabel(value: string): string;
|
|
59
|
+
/** Get the numeric index of a grade code in ORDERED_GRADES. Returns -1 if not found. */
|
|
60
|
+
export declare function getGradeIndex(grade: string): number;
|
|
61
|
+
/** Returns true if startGrade comes before or is equal to endGrade in the ordering. */
|
|
62
|
+
export declare function isValidGradeRange(start: string, end: string): boolean;
|
|
63
|
+
/** Maps simple grade codes (PK, K, 1–12) to Ed-Fi GradeLevelDescriptor values */
|
|
64
|
+
export declare const GRADE_RANGE_TO_DESCRIPTOR: Record<string, string>;
|
|
65
|
+
/**
|
|
66
|
+
* Compute Ed-Fi grade level descriptor array from a grade range.
|
|
67
|
+
* Returns empty array if inputs are invalid.
|
|
68
|
+
*/
|
|
69
|
+
export declare function computeGradeLevels(start: string, end: string): string[];
|
|
70
|
+
/** Default grade range for each school type */
|
|
71
|
+
export declare const SCHOOL_TYPE_GRADE_DEFAULTS: Record<string, {
|
|
72
|
+
start: string;
|
|
73
|
+
end: string;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Get the default grade range for a given school type.
|
|
77
|
+
* Falls back to PK–12 for unknown types.
|
|
78
|
+
*/
|
|
79
|
+
export declare function getDefaultGradeRange(schoolType: string): {
|
|
80
|
+
start: string;
|
|
81
|
+
end: string;
|
|
82
|
+
};
|
|
83
|
+
/** Map internal school type to suggested Ed-Fi school category */
|
|
84
|
+
export declare const TYPE_TO_SUGGESTED_CATEGORY: Record<string, string>;
|
|
85
|
+
/** Map internal school type to suggested Ed-Fi school type descriptor */
|
|
86
|
+
export declare const TYPE_TO_SUGGESTED_DESCRIPTOR: Record<string, string>;
|
|
87
|
+
/** Get the suggested Ed-Fi school category for a school type */
|
|
88
|
+
export declare function getSuggestedCategory(schoolType: string): string | undefined;
|
|
89
|
+
/** Get the suggested Ed-Fi school type descriptor for a school type */
|
|
90
|
+
export declare function getSuggestedDescriptor(schoolType: string): string | undefined;
|
|
91
|
+
export declare const SCHOOL_TYPE_OPTIONS: readonly [{
|
|
92
|
+
readonly value: "elementary";
|
|
93
|
+
readonly label: "Elementary School";
|
|
94
|
+
}, {
|
|
95
|
+
readonly value: "middle";
|
|
96
|
+
readonly label: "Middle School";
|
|
97
|
+
}, {
|
|
98
|
+
readonly value: "high";
|
|
99
|
+
readonly label: "High School";
|
|
100
|
+
}, {
|
|
101
|
+
readonly value: "k12";
|
|
102
|
+
readonly label: "K-12 School";
|
|
103
|
+
}, {
|
|
104
|
+
readonly value: "charter";
|
|
105
|
+
readonly label: "Charter School";
|
|
106
|
+
}, {
|
|
107
|
+
readonly value: "private";
|
|
108
|
+
readonly label: "Private School";
|
|
109
|
+
}, {
|
|
110
|
+
readonly value: "vocational";
|
|
111
|
+
readonly label: "Vocational School";
|
|
112
|
+
}, {
|
|
113
|
+
readonly value: "special_education";
|
|
114
|
+
readonly label: "Special Education";
|
|
115
|
+
}];
|
|
116
|
+
export declare const SCHOOL_TYPE_LABELS: Record<string, string>;
|
|
117
|
+
/**
|
|
118
|
+
* Validate that a school type and grade range combination is reasonable.
|
|
119
|
+
* Returns null if valid, or an error message string if invalid.
|
|
120
|
+
*/
|
|
121
|
+
export declare function validateSchoolTypeGradeRange(schoolType: string, gradeRange: {
|
|
122
|
+
start: string;
|
|
123
|
+
end: string;
|
|
124
|
+
}): string | null;
|
|
125
|
+
//# sourceMappingURL=grade-levels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grade-levels.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/grade-levels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,4DAA4D;AAC5D,eAAO,MAAM,cAAc,qFAEjB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetB,CAAC;AAEX,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIrE;AAMD,iFAAiF;AACjF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAe5D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvE;AAMD,+CAA+C;AAC/C,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CASrF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAEvF;AAMD,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS7D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS/D,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7E;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAStB,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUrD,CAAC;AAsBF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,GAAG,IAAI,CA8Bf"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Grade Level Constants — Shared across all EdForge apps
|
|
4
|
+
*
|
|
5
|
+
* Canonical definitions for grade ordering, display labels,
|
|
6
|
+
* EdFi descriptor mapping, and school-type-to-grade-range defaults.
|
|
7
|
+
*
|
|
8
|
+
* IMPORTANT: This is the single source of truth for grade-level constants.
|
|
9
|
+
* Do NOT duplicate these arrays in other files — import from here.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SCHOOL_TYPE_LABELS = exports.SCHOOL_TYPE_OPTIONS = exports.TYPE_TO_SUGGESTED_DESCRIPTOR = exports.TYPE_TO_SUGGESTED_CATEGORY = exports.SCHOOL_TYPE_GRADE_DEFAULTS = exports.GRADE_RANGE_TO_DESCRIPTOR = exports.GRADE_LEVEL_OPTIONS = exports.ORDERED_GRADES = void 0;
|
|
13
|
+
exports.getGradeLevelLabel = getGradeLevelLabel;
|
|
14
|
+
exports.getGradeIndex = getGradeIndex;
|
|
15
|
+
exports.isValidGradeRange = isValidGradeRange;
|
|
16
|
+
exports.computeGradeLevels = computeGradeLevels;
|
|
17
|
+
exports.getDefaultGradeRange = getDefaultGradeRange;
|
|
18
|
+
exports.getSuggestedCategory = getSuggestedCategory;
|
|
19
|
+
exports.getSuggestedDescriptor = getSuggestedDescriptor;
|
|
20
|
+
exports.validateSchoolTypeGradeRange = validateSchoolTypeGradeRange;
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// GRADE ORDERING & OPTIONS
|
|
23
|
+
// ============================================================================
|
|
24
|
+
/** Canonical ordered grade codes from earliest to latest */
|
|
25
|
+
exports.ORDERED_GRADES = [
|
|
26
|
+
'PK', 'K', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
|
|
27
|
+
];
|
|
28
|
+
/** Grade display options for dropdowns and tables (PK–12) */
|
|
29
|
+
exports.GRADE_LEVEL_OPTIONS = [
|
|
30
|
+
{ value: 'PK', label: 'Pre-K' },
|
|
31
|
+
{ value: 'K', label: 'Kindergarten' },
|
|
32
|
+
{ value: '1', label: 'Grade 1' },
|
|
33
|
+
{ value: '2', label: 'Grade 2' },
|
|
34
|
+
{ value: '3', label: 'Grade 3' },
|
|
35
|
+
{ value: '4', label: 'Grade 4' },
|
|
36
|
+
{ value: '5', label: 'Grade 5' },
|
|
37
|
+
{ value: '6', label: 'Grade 6' },
|
|
38
|
+
{ value: '7', label: 'Grade 7' },
|
|
39
|
+
{ value: '8', label: 'Grade 8' },
|
|
40
|
+
{ value: '9', label: 'Grade 9' },
|
|
41
|
+
{ value: '10', label: 'Grade 10' },
|
|
42
|
+
{ value: '11', label: 'Grade 11' },
|
|
43
|
+
{ value: '12', label: 'Grade 12' },
|
|
44
|
+
];
|
|
45
|
+
/** Get display label for a grade code. Returns the code itself if not found. */
|
|
46
|
+
function getGradeLevelLabel(value) {
|
|
47
|
+
var _a;
|
|
48
|
+
const option = exports.GRADE_LEVEL_OPTIONS.find((o) => o.value === value);
|
|
49
|
+
return (_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : value;
|
|
50
|
+
}
|
|
51
|
+
/** Get the numeric index of a grade code in ORDERED_GRADES. Returns -1 if not found. */
|
|
52
|
+
function getGradeIndex(grade) {
|
|
53
|
+
return exports.ORDERED_GRADES.indexOf(grade);
|
|
54
|
+
}
|
|
55
|
+
/** Returns true if startGrade comes before or is equal to endGrade in the ordering. */
|
|
56
|
+
function isValidGradeRange(start, end) {
|
|
57
|
+
const startIdx = getGradeIndex(start);
|
|
58
|
+
const endIdx = getGradeIndex(end);
|
|
59
|
+
return startIdx !== -1 && endIdx !== -1 && startIdx <= endIdx;
|
|
60
|
+
}
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// GRADE RANGE → ED-FI DESCRIPTOR MAPPING
|
|
63
|
+
// ============================================================================
|
|
64
|
+
/** Maps simple grade codes (PK, K, 1–12) to Ed-Fi GradeLevelDescriptor values */
|
|
65
|
+
exports.GRADE_RANGE_TO_DESCRIPTOR = {
|
|
66
|
+
PK: 'Prekindergarten',
|
|
67
|
+
K: 'Kindergarten',
|
|
68
|
+
'1': 'FirstGrade',
|
|
69
|
+
'2': 'SecondGrade',
|
|
70
|
+
'3': 'ThirdGrade',
|
|
71
|
+
'4': 'FourthGrade',
|
|
72
|
+
'5': 'FifthGrade',
|
|
73
|
+
'6': 'SixthGrade',
|
|
74
|
+
'7': 'SeventhGrade',
|
|
75
|
+
'8': 'EighthGrade',
|
|
76
|
+
'9': 'NinthGrade',
|
|
77
|
+
'10': 'TenthGrade',
|
|
78
|
+
'11': 'EleventhGrade',
|
|
79
|
+
'12': 'TwelfthGrade',
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Compute Ed-Fi grade level descriptor array from a grade range.
|
|
83
|
+
* Returns empty array if inputs are invalid.
|
|
84
|
+
*/
|
|
85
|
+
function computeGradeLevels(start, end) {
|
|
86
|
+
if (!start || !end)
|
|
87
|
+
return [];
|
|
88
|
+
const startIdx = getGradeIndex(start);
|
|
89
|
+
const endIdx = getGradeIndex(end);
|
|
90
|
+
if (startIdx === -1 || endIdx === -1 || startIdx > endIdx)
|
|
91
|
+
return [];
|
|
92
|
+
return exports.ORDERED_GRADES.slice(startIdx, endIdx + 1)
|
|
93
|
+
.map((g) => exports.GRADE_RANGE_TO_DESCRIPTOR[g])
|
|
94
|
+
.filter(Boolean);
|
|
95
|
+
}
|
|
96
|
+
// ============================================================================
|
|
97
|
+
// SCHOOL TYPE → GRADE RANGE DEFAULTS
|
|
98
|
+
// ============================================================================
|
|
99
|
+
/** Default grade range for each school type */
|
|
100
|
+
exports.SCHOOL_TYPE_GRADE_DEFAULTS = {
|
|
101
|
+
elementary: { start: 'PK', end: '5' },
|
|
102
|
+
middle: { start: '6', end: '8' },
|
|
103
|
+
high: { start: '9', end: '12' },
|
|
104
|
+
k12: { start: 'PK', end: '12' },
|
|
105
|
+
charter: { start: 'PK', end: '12' },
|
|
106
|
+
private: { start: 'PK', end: '12' },
|
|
107
|
+
vocational: { start: '9', end: '12' },
|
|
108
|
+
special_education: { start: 'PK', end: '12' },
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Get the default grade range for a given school type.
|
|
112
|
+
* Falls back to PK–12 for unknown types.
|
|
113
|
+
*/
|
|
114
|
+
function getDefaultGradeRange(schoolType) {
|
|
115
|
+
var _a;
|
|
116
|
+
return (_a = exports.SCHOOL_TYPE_GRADE_DEFAULTS[schoolType]) !== null && _a !== void 0 ? _a : { start: 'PK', end: '12' };
|
|
117
|
+
}
|
|
118
|
+
// ============================================================================
|
|
119
|
+
// SCHOOL TYPE → ED-FI SUGGESTIONS
|
|
120
|
+
// ============================================================================
|
|
121
|
+
/** Map internal school type to suggested Ed-Fi school category */
|
|
122
|
+
exports.TYPE_TO_SUGGESTED_CATEGORY = {
|
|
123
|
+
elementary: 'Elementary',
|
|
124
|
+
middle: 'MiddleSchool',
|
|
125
|
+
high: 'HighSchool',
|
|
126
|
+
k12: 'AllLevels',
|
|
127
|
+
charter: 'AllLevels',
|
|
128
|
+
private: 'AllLevels',
|
|
129
|
+
vocational: 'SecondarySchool',
|
|
130
|
+
special_education: 'Ungraded',
|
|
131
|
+
};
|
|
132
|
+
/** Map internal school type to suggested Ed-Fi school type descriptor */
|
|
133
|
+
exports.TYPE_TO_SUGGESTED_DESCRIPTOR = {
|
|
134
|
+
elementary: 'Regular',
|
|
135
|
+
middle: 'Regular',
|
|
136
|
+
high: 'Regular',
|
|
137
|
+
k12: 'Regular',
|
|
138
|
+
charter: 'Regular',
|
|
139
|
+
private: 'Regular',
|
|
140
|
+
vocational: 'CareerAndTechnical',
|
|
141
|
+
special_education: 'SpecialEducation',
|
|
142
|
+
};
|
|
143
|
+
/** Get the suggested Ed-Fi school category for a school type */
|
|
144
|
+
function getSuggestedCategory(schoolType) {
|
|
145
|
+
return exports.TYPE_TO_SUGGESTED_CATEGORY[schoolType];
|
|
146
|
+
}
|
|
147
|
+
/** Get the suggested Ed-Fi school type descriptor for a school type */
|
|
148
|
+
function getSuggestedDescriptor(schoolType) {
|
|
149
|
+
return exports.TYPE_TO_SUGGESTED_DESCRIPTOR[schoolType];
|
|
150
|
+
}
|
|
151
|
+
// ============================================================================
|
|
152
|
+
// SCHOOL TYPE OPTIONS & LABELS
|
|
153
|
+
// ============================================================================
|
|
154
|
+
exports.SCHOOL_TYPE_OPTIONS = [
|
|
155
|
+
{ value: 'elementary', label: 'Elementary School' },
|
|
156
|
+
{ value: 'middle', label: 'Middle School' },
|
|
157
|
+
{ value: 'high', label: 'High School' },
|
|
158
|
+
{ value: 'k12', label: 'K-12 School' },
|
|
159
|
+
{ value: 'charter', label: 'Charter School' },
|
|
160
|
+
{ value: 'private', label: 'Private School' },
|
|
161
|
+
{ value: 'vocational', label: 'Vocational School' },
|
|
162
|
+
{ value: 'special_education', label: 'Special Education' },
|
|
163
|
+
];
|
|
164
|
+
exports.SCHOOL_TYPE_LABELS = {
|
|
165
|
+
elementary: 'Elementary',
|
|
166
|
+
middle: 'Middle School',
|
|
167
|
+
high: 'High School',
|
|
168
|
+
k12: 'K-12',
|
|
169
|
+
charter: 'Charter',
|
|
170
|
+
private: 'Private',
|
|
171
|
+
vocational: 'Vocational',
|
|
172
|
+
special_education: 'Special Ed',
|
|
173
|
+
other: 'Other',
|
|
174
|
+
};
|
|
175
|
+
// ============================================================================
|
|
176
|
+
// CROSS-VALIDATION: SCHOOL TYPE VS GRADE RANGE
|
|
177
|
+
// ============================================================================
|
|
178
|
+
/**
|
|
179
|
+
* Acceptable grade range boundaries per school type.
|
|
180
|
+
* `null` means no constraint on that end.
|
|
181
|
+
* Uses grade index values (0=PK, 1=K, 2=1st, ... 13=12th).
|
|
182
|
+
*/
|
|
183
|
+
const SCHOOL_TYPE_GRADE_BOUNDARIES = {
|
|
184
|
+
elementary: { maxEnd: 9 }, // end ≤ 8th grade (index 9)
|
|
185
|
+
middle: { minStart: 5 }, // start ≥ 4th grade (index 5) — no maxEnd, allow through 9th
|
|
186
|
+
high: { minStart: 8 }, // start ≥ 7th grade (index 8)
|
|
187
|
+
k12: null, // any range
|
|
188
|
+
charter: null, // any range
|
|
189
|
+
private: null, // any range
|
|
190
|
+
vocational: { minStart: 8 }, // start ≥ 7th grade
|
|
191
|
+
special_education: null, // any range
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Validate that a school type and grade range combination is reasonable.
|
|
195
|
+
* Returns null if valid, or an error message string if invalid.
|
|
196
|
+
*/
|
|
197
|
+
function validateSchoolTypeGradeRange(schoolType, gradeRange) {
|
|
198
|
+
const startIdx = getGradeIndex(gradeRange.start);
|
|
199
|
+
const endIdx = getGradeIndex(gradeRange.end);
|
|
200
|
+
if (startIdx === -1 || endIdx === -1) {
|
|
201
|
+
return 'Invalid grade values';
|
|
202
|
+
}
|
|
203
|
+
if (startIdx > endIdx) {
|
|
204
|
+
return 'Start grade must be before or equal to end grade';
|
|
205
|
+
}
|
|
206
|
+
const boundaries = SCHOOL_TYPE_GRADE_BOUNDARIES[schoolType];
|
|
207
|
+
if (boundaries === null || boundaries === undefined) {
|
|
208
|
+
return null; // no constraints for this type
|
|
209
|
+
}
|
|
210
|
+
if (boundaries.minStart !== undefined && startIdx < boundaries.minStart) {
|
|
211
|
+
const minGrade = exports.ORDERED_GRADES[boundaries.minStart];
|
|
212
|
+
const label = getGradeLevelLabel(minGrade);
|
|
213
|
+
return `${exports.SCHOOL_TYPE_LABELS[schoolType] || schoolType} school grade range should start at or above ${label}`;
|
|
214
|
+
}
|
|
215
|
+
if (boundaries.maxEnd !== undefined && endIdx > boundaries.maxEnd) {
|
|
216
|
+
const maxGrade = exports.ORDERED_GRADES[boundaries.maxEnd];
|
|
217
|
+
const label = getGradeLevelLabel(maxGrade);
|
|
218
|
+
return `${exports.SCHOOL_TYPE_LABELS[schoolType] || schoolType} school grade range should end at or below ${label}`;
|
|
219
|
+
}
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=grade-levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grade-levels.js","sourceRoot":"","sources":["../../../src/schemas/identity/grade-levels.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export * from './role.schema';
|
|
|
12
12
|
export * from './session.schema';
|
|
13
13
|
export * from './academic-year.schema';
|
|
14
14
|
export * from './department.schema';
|
|
15
|
+
export * from './grade-levels';
|
|
15
16
|
export * from './education-org-descriptors';
|
|
16
17
|
export * from './education-organization.schema';
|
|
17
18
|
export * from './state-education-agency.schema';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
|
|
@@ -28,6 +28,8 @@ __exportStar(require("./role.schema"), exports);
|
|
|
28
28
|
__exportStar(require("./session.schema"), exports);
|
|
29
29
|
__exportStar(require("./academic-year.schema"), exports);
|
|
30
30
|
__exportStar(require("./department.schema"), exports);
|
|
31
|
+
// Grade Level Constants (canonical source of truth)
|
|
32
|
+
__exportStar(require("./grade-levels"), exports);
|
|
31
33
|
// Education Organization Domain (Ed-Fi aligned)
|
|
32
34
|
__exportStar(require("./education-org-descriptors"), exports);
|
|
33
35
|
__exportStar(require("./education-organization.schema"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,gDAA8B;AAC9B,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,mDAAiC;AACjC,yDAAuC;AACvC,sDAAoC;AAEpC,gDAAgD;AAChD,8DAA4C;AAC5C,kEAAgD;AAChD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,iEAA+C;AAC/C,mEAAiD;AAEjD,mCAAmC;AACnC,iDAA+B;AAC/B,4DAA0C;AAC1C,oEAAkD;AAClD,sDAAoC;AACpC,iDAA+B;AAE/B,sCAAsC;AACtC,yDAAuC;AACvC,oDAAkC;AAClC,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AAErC,kCAAkC;AAClC,wDAAsC;AACtC,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/identity/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,gDAA8B;AAC9B,oDAAkC;AAClC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,mDAAiC;AACjC,yDAAuC;AACvC,sDAAoC;AAEpC,oDAAoD;AACpD,iDAA+B;AAE/B,gDAAgD;AAChD,8DAA4C;AAC5C,kEAAgD;AAChD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,iEAA+C;AAC/C,mEAAiD;AAEjD,mCAAmC;AACnC,iDAA+B;AAC/B,4DAA0C;AAC1C,oEAAkD;AAClD,sDAAoC;AACpC,iDAA+B;AAE/B,sCAAsC;AACtC,yDAAuC;AACvC,oDAAkC;AAClC,yDAAuC;AACvC,4DAA0C;AAC1C,uDAAqC;AAErC,kCAAkC;AAClC,wDAAsC;AACtC,oDAAkC"}
|
|
@@ -48,7 +48,7 @@ export declare const createLeaveRequestSchema: z.ZodObject<{
|
|
|
48
48
|
}, "strip", z.ZodTypeAny, {
|
|
49
49
|
startDate: string;
|
|
50
50
|
endDate: string;
|
|
51
|
-
leaveType: "
|
|
51
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
52
52
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
53
53
|
reason?: string | undefined;
|
|
54
54
|
notes?: string | undefined;
|
|
@@ -65,7 +65,7 @@ export declare const createLeaveRequestSchema: z.ZodObject<{
|
|
|
65
65
|
}, {
|
|
66
66
|
startDate: string;
|
|
67
67
|
endDate: string;
|
|
68
|
-
leaveType: "
|
|
68
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
69
69
|
reason?: string | undefined;
|
|
70
70
|
notes?: string | undefined;
|
|
71
71
|
documentUrl?: string | undefined;
|
|
@@ -108,7 +108,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
|
|
|
108
108
|
}, "strip", z.ZodTypeAny, {
|
|
109
109
|
startDate: string;
|
|
110
110
|
endDate: string;
|
|
111
|
-
leaveType: "
|
|
111
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
112
112
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
113
113
|
reason?: string | undefined;
|
|
114
114
|
notes?: string | undefined;
|
|
@@ -125,7 +125,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
|
|
|
125
125
|
}, {
|
|
126
126
|
startDate: string;
|
|
127
127
|
endDate: string;
|
|
128
|
-
leaveType: "
|
|
128
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
129
129
|
reason?: string | undefined;
|
|
130
130
|
notes?: string | undefined;
|
|
131
131
|
documentUrl?: string | undefined;
|
|
@@ -142,7 +142,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
|
|
|
142
142
|
}>, {
|
|
143
143
|
startDate: string;
|
|
144
144
|
endDate: string;
|
|
145
|
-
leaveType: "
|
|
145
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
146
146
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
147
147
|
reason?: string | undefined;
|
|
148
148
|
notes?: string | undefined;
|
|
@@ -159,7 +159,7 @@ export declare const createLeaveRequestWithValidationSchema: z.ZodEffects<z.ZodO
|
|
|
159
159
|
}, {
|
|
160
160
|
startDate: string;
|
|
161
161
|
endDate: string;
|
|
162
|
-
leaveType: "
|
|
162
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
163
163
|
reason?: string | undefined;
|
|
164
164
|
notes?: string | undefined;
|
|
165
165
|
documentUrl?: string | undefined;
|
|
@@ -208,7 +208,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
|
|
|
208
208
|
documentUrl?: string | undefined;
|
|
209
209
|
documentFileName?: string | undefined;
|
|
210
210
|
hours?: number | undefined;
|
|
211
|
-
leaveType?: "
|
|
211
|
+
leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
|
|
212
212
|
durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
|
|
213
213
|
substituteStaffId?: string | undefined;
|
|
214
214
|
coverageNotes?: string | undefined;
|
|
@@ -225,7 +225,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
|
|
|
225
225
|
documentUrl?: string | undefined;
|
|
226
226
|
documentFileName?: string | undefined;
|
|
227
227
|
hours?: number | undefined;
|
|
228
|
-
leaveType?: "
|
|
228
|
+
leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
|
|
229
229
|
durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
|
|
230
230
|
substituteStaffId?: string | undefined;
|
|
231
231
|
coverageNotes?: string | undefined;
|
|
@@ -242,7 +242,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
|
|
|
242
242
|
documentUrl?: string | undefined;
|
|
243
243
|
documentFileName?: string | undefined;
|
|
244
244
|
hours?: number | undefined;
|
|
245
|
-
leaveType?: "
|
|
245
|
+
leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
|
|
246
246
|
durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
|
|
247
247
|
substituteStaffId?: string | undefined;
|
|
248
248
|
coverageNotes?: string | undefined;
|
|
@@ -259,7 +259,7 @@ export declare const updateLeaveRequestSchema: z.ZodEffects<z.ZodObject<{
|
|
|
259
259
|
documentUrl?: string | undefined;
|
|
260
260
|
documentFileName?: string | undefined;
|
|
261
261
|
hours?: number | undefined;
|
|
262
|
-
leaveType?: "
|
|
262
|
+
leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
|
|
263
263
|
durationType?: "full_day" | "half_day_am" | "half_day_pm" | "hours" | undefined;
|
|
264
264
|
substituteStaffId?: string | undefined;
|
|
265
265
|
coverageNotes?: string | undefined;
|
|
@@ -320,7 +320,7 @@ export declare const leaveRequestResponseSchema: z.ZodObject<{
|
|
|
320
320
|
schoolId: string;
|
|
321
321
|
staffId: string;
|
|
322
322
|
staffName: string;
|
|
323
|
-
leaveType: "
|
|
323
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
324
324
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
325
325
|
leaveId: string;
|
|
326
326
|
totalDays: number;
|
|
@@ -352,7 +352,7 @@ export declare const leaveRequestResponseSchema: z.ZodObject<{
|
|
|
352
352
|
schoolId: string;
|
|
353
353
|
staffId: string;
|
|
354
354
|
staffName: string;
|
|
355
|
-
leaveType: "
|
|
355
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
356
356
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
357
357
|
leaveId: string;
|
|
358
358
|
totalDays: number;
|
|
@@ -427,7 +427,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
|
|
|
427
427
|
schoolId: string;
|
|
428
428
|
staffId: string;
|
|
429
429
|
staffName: string;
|
|
430
|
-
leaveType: "
|
|
430
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
431
431
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
432
432
|
leaveId: string;
|
|
433
433
|
totalDays: number;
|
|
@@ -459,7 +459,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
|
|
|
459
459
|
schoolId: string;
|
|
460
460
|
staffId: string;
|
|
461
461
|
staffName: string;
|
|
462
|
-
leaveType: "
|
|
462
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
463
463
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
464
464
|
leaveId: string;
|
|
465
465
|
totalDays: number;
|
|
@@ -496,7 +496,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
|
|
|
496
496
|
schoolId: string;
|
|
497
497
|
staffId: string;
|
|
498
498
|
staffName: string;
|
|
499
|
-
leaveType: "
|
|
499
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
500
500
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
501
501
|
leaveId: string;
|
|
502
502
|
totalDays: number;
|
|
@@ -533,7 +533,7 @@ export declare const leaveListResponseSchema: z.ZodObject<{
|
|
|
533
533
|
schoolId: string;
|
|
534
534
|
staffId: string;
|
|
535
535
|
staffName: string;
|
|
536
|
-
leaveType: "
|
|
536
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
537
537
|
durationType: "full_day" | "half_day_am" | "half_day_pm" | "hours";
|
|
538
538
|
leaveId: string;
|
|
539
539
|
totalDays: number;
|
|
@@ -576,7 +576,7 @@ export declare const leaveFilterSchema: z.ZodObject<{
|
|
|
576
576
|
cursor?: string | undefined;
|
|
577
577
|
schoolId?: string | undefined;
|
|
578
578
|
staffId?: string | undefined;
|
|
579
|
-
leaveType?: "
|
|
579
|
+
leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
|
|
580
580
|
startDateFrom?: string | undefined;
|
|
581
581
|
startDateTo?: string | undefined;
|
|
582
582
|
}, {
|
|
@@ -585,7 +585,7 @@ export declare const leaveFilterSchema: z.ZodObject<{
|
|
|
585
585
|
cursor?: string | undefined;
|
|
586
586
|
schoolId?: string | undefined;
|
|
587
587
|
staffId?: string | undefined;
|
|
588
|
-
leaveType?: "
|
|
588
|
+
leaveType?: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid" | undefined;
|
|
589
589
|
startDateFrom?: string | undefined;
|
|
590
590
|
startDateTo?: string | undefined;
|
|
591
591
|
}>;
|
|
@@ -618,14 +618,14 @@ export declare const leaveBalanceSchema: z.ZodObject<{
|
|
|
618
618
|
carryOver: z.ZodOptional<z.ZodNumber>;
|
|
619
619
|
}, "strip", z.ZodTypeAny, {
|
|
620
620
|
pending: number;
|
|
621
|
-
leaveType: "
|
|
621
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
622
622
|
accrued: number;
|
|
623
623
|
used: number;
|
|
624
624
|
available: number;
|
|
625
625
|
carryOver?: number | undefined;
|
|
626
626
|
}, {
|
|
627
627
|
pending: number;
|
|
628
|
-
leaveType: "
|
|
628
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
629
629
|
accrued: number;
|
|
630
630
|
used: number;
|
|
631
631
|
available: number;
|
|
@@ -637,7 +637,7 @@ export declare const leaveBalanceSchema: z.ZodObject<{
|
|
|
637
637
|
fiscalYear: string;
|
|
638
638
|
balances: {
|
|
639
639
|
pending: number;
|
|
640
|
-
leaveType: "
|
|
640
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
641
641
|
accrued: number;
|
|
642
642
|
used: number;
|
|
643
643
|
available: number;
|
|
@@ -649,7 +649,7 @@ export declare const leaveBalanceSchema: z.ZodObject<{
|
|
|
649
649
|
fiscalYear: string;
|
|
650
650
|
balances: {
|
|
651
651
|
pending: number;
|
|
652
|
-
leaveType: "
|
|
652
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
653
653
|
accrued: number;
|
|
654
654
|
used: number;
|
|
655
655
|
available: number;
|
|
@@ -675,13 +675,13 @@ export declare const leaveSummarySchema: z.ZodObject<{
|
|
|
675
675
|
status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
|
|
676
676
|
startDate: string;
|
|
677
677
|
endDate: string;
|
|
678
|
-
leaveType: "
|
|
678
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
679
679
|
leaveId: string;
|
|
680
680
|
}, {
|
|
681
681
|
status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
|
|
682
682
|
startDate: string;
|
|
683
683
|
endDate: string;
|
|
684
|
-
leaveType: "
|
|
684
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
685
685
|
leaveId: string;
|
|
686
686
|
}>, "many">>;
|
|
687
687
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -695,7 +695,7 @@ export declare const leaveSummarySchema: z.ZodObject<{
|
|
|
695
695
|
status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
|
|
696
696
|
startDate: string;
|
|
697
697
|
endDate: string;
|
|
698
|
-
leaveType: "
|
|
698
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
699
699
|
leaveId: string;
|
|
700
700
|
}[] | undefined;
|
|
701
701
|
}, {
|
|
@@ -709,7 +709,7 @@ export declare const leaveSummarySchema: z.ZodObject<{
|
|
|
709
709
|
status: "completed" | "pending" | "rejected" | "approved" | "cancelled" | "in_progress";
|
|
710
710
|
startDate: string;
|
|
711
711
|
endDate: string;
|
|
712
|
-
leaveType: "
|
|
712
|
+
leaveType: "other" | "professional_development" | "personal" | "annual" | "sick" | "bereavement" | "maternity" | "paternity" | "family_medical" | "jury_duty" | "military" | "sabbatical" | "unpaid";
|
|
713
713
|
leaveId: string;
|
|
714
714
|
}[] | undefined;
|
|
715
715
|
}>;
|