@sekolaos/shared-schema 0.0.0-stage → 1.0.1

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 (73) hide show
  1. package/README.md +118 -3
  2. package/dist/cjs/academic/academic-year.schema.js +43 -0
  3. package/dist/cjs/academic/academic-year.schema.js.map +1 -0
  4. package/dist/cjs/academic/class-room.schema.js +29 -0
  5. package/dist/cjs/academic/class-room.schema.js.map +1 -0
  6. package/dist/cjs/attendance/attendance-class.schema.js +19 -0
  7. package/dist/cjs/attendance/attendance-class.schema.js.map +1 -0
  8. package/dist/cjs/attendance/attendance-kiosk.schema.js +35 -0
  9. package/dist/cjs/attendance/attendance-kiosk.schema.js.map +1 -0
  10. package/dist/cjs/attendance/barcode-rolling.schema.js +18 -0
  11. package/dist/cjs/attendance/barcode-rolling.schema.js.map +1 -0
  12. package/dist/cjs/auth/auth.schema.js +25 -0
  13. package/dist/cjs/auth/auth.schema.js.map +1 -0
  14. package/dist/cjs/auth/role.schema.js +34 -0
  15. package/dist/cjs/auth/role.schema.js.map +1 -0
  16. package/dist/cjs/common/common.schema.js +23 -0
  17. package/dist/cjs/common/common.schema.js.map +1 -0
  18. package/dist/cjs/common/pagination.schema.js +22 -0
  19. package/dist/cjs/common/pagination.schema.js.map +1 -0
  20. package/dist/cjs/index.js +30 -0
  21. package/dist/cjs/index.js.map +1 -0
  22. package/dist/cjs/package.json +3 -0
  23. package/dist/cjs/tenant/attendance-shift.schema.js +59 -0
  24. package/dist/cjs/tenant/attendance-shift.schema.js.map +1 -0
  25. package/dist/cjs/tenant/tenant.schema.js +23 -0
  26. package/dist/cjs/tenant/tenant.schema.js.map +1 -0
  27. package/dist/cjs/user/student.schema.js +65 -0
  28. package/dist/cjs/user/student.schema.js.map +1 -0
  29. package/dist/cjs/user/user.schema.js +56 -0
  30. package/dist/cjs/user/user.schema.js.map +1 -0
  31. package/dist/esm/academic/academic-year.schema.js +40 -0
  32. package/dist/esm/academic/academic-year.schema.js.map +1 -0
  33. package/dist/esm/academic/class-room.schema.js +26 -0
  34. package/dist/esm/academic/class-room.schema.js.map +1 -0
  35. package/dist/esm/attendance/attendance-class.schema.js +16 -0
  36. package/dist/esm/attendance/attendance-class.schema.js.map +1 -0
  37. package/dist/esm/attendance/attendance-kiosk.schema.js +32 -0
  38. package/dist/esm/attendance/attendance-kiosk.schema.js.map +1 -0
  39. package/dist/esm/attendance/barcode-rolling.schema.js +15 -0
  40. package/dist/esm/attendance/barcode-rolling.schema.js.map +1 -0
  41. package/dist/esm/auth/auth.schema.js +22 -0
  42. package/dist/esm/auth/auth.schema.js.map +1 -0
  43. package/dist/esm/auth/role.schema.js +31 -0
  44. package/dist/esm/auth/role.schema.js.map +1 -0
  45. package/dist/esm/common/common.schema.js +19 -0
  46. package/dist/esm/common/common.schema.js.map +1 -0
  47. package/dist/esm/common/pagination.schema.js +18 -0
  48. package/dist/esm/common/pagination.schema.js.map +1 -0
  49. package/dist/esm/index.js +14 -0
  50. package/dist/esm/index.js.map +1 -0
  51. package/dist/esm/tenant/attendance-shift.schema.js +56 -0
  52. package/dist/esm/tenant/attendance-shift.schema.js.map +1 -0
  53. package/dist/esm/tenant/tenant.schema.js +20 -0
  54. package/dist/esm/tenant/tenant.schema.js.map +1 -0
  55. package/dist/esm/user/student.schema.js +62 -0
  56. package/dist/esm/user/student.schema.js.map +1 -0
  57. package/dist/esm/user/user.schema.js +53 -0
  58. package/dist/esm/user/user.schema.js.map +1 -0
  59. package/dist/types/academic/academic-year.schema.d.ts +95 -0
  60. package/dist/types/academic/class-room.schema.d.ts +86 -0
  61. package/dist/types/attendance/attendance-class.schema.d.ts +55 -0
  62. package/dist/types/attendance/attendance-kiosk.schema.d.ts +108 -0
  63. package/dist/types/attendance/barcode-rolling.schema.d.ts +35 -0
  64. package/dist/types/auth/auth.schema.d.ts +105 -0
  65. package/dist/types/auth/role.schema.d.ts +57 -0
  66. package/dist/types/common/common.schema.d.ts +51 -0
  67. package/dist/types/common/pagination.schema.d.ts +58 -0
  68. package/dist/types/index.d.ts +13 -0
  69. package/dist/types/tenant/attendance-shift.schema.d.ts +97 -0
  70. package/dist/types/tenant/tenant.schema.d.ts +54 -0
  71. package/dist/types/user/student.schema.d.ts +234 -0
  72. package/dist/types/user/user.schema.d.ts +154 -0
  73. package/package.json +55 -6
@@ -0,0 +1,95 @@
1
+ import { z } from "zod";
2
+ export declare const semesterEnum: z.ZodEnum<["GANJIL", "GENAP"]>;
3
+ export declare const academicYearNameSchema: z.ZodString;
4
+ export declare const academicYearSchema: z.ZodEffects<z.ZodType<{
5
+ id: string;
6
+ name: string;
7
+ tenantId: string;
8
+ isActive: boolean;
9
+ semester: "GANJIL" | "GENAP";
10
+ startDate: string;
11
+ endDate: string;
12
+ }, z.ZodTypeDef, {
13
+ id: string;
14
+ name: string;
15
+ tenantId: string;
16
+ isActive: boolean;
17
+ semester: "GANJIL" | "GENAP";
18
+ startDate: string;
19
+ endDate: string;
20
+ }>, {
21
+ id: string;
22
+ name: string;
23
+ tenantId: string;
24
+ isActive: boolean;
25
+ semester: "GANJIL" | "GENAP";
26
+ startDate: string;
27
+ endDate: string;
28
+ }, {
29
+ id: string;
30
+ name: string;
31
+ tenantId: string;
32
+ isActive: boolean;
33
+ semester: "GANJIL" | "GENAP";
34
+ startDate: string;
35
+ endDate: string;
36
+ }>;
37
+ export declare const createAcademicYearSchema: z.ZodEffects<z.ZodType<{
38
+ name: string;
39
+ semester: "GANJIL" | "GENAP";
40
+ startDate: string;
41
+ endDate: string;
42
+ }, z.ZodTypeDef, {
43
+ name: string;
44
+ semester: "GANJIL" | "GENAP";
45
+ startDate: string;
46
+ endDate: string;
47
+ }>, {
48
+ name: string;
49
+ semester: "GANJIL" | "GENAP";
50
+ startDate: string;
51
+ endDate: string;
52
+ }, {
53
+ name: string;
54
+ semester: "GANJIL" | "GENAP";
55
+ startDate: string;
56
+ endDate: string;
57
+ }>;
58
+ export declare const updateAcademicYearSchema: z.ZodEffects<z.ZodObject<{
59
+ name: z.ZodOptional<z.ZodString>;
60
+ semester: z.ZodOptional<z.ZodEnum<["GANJIL", "GENAP"]>>;
61
+ startDate: z.ZodOptional<z.ZodString>;
62
+ endDate: z.ZodOptional<z.ZodString>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ name?: string | undefined;
65
+ semester?: "GANJIL" | "GENAP" | undefined;
66
+ startDate?: string | undefined;
67
+ endDate?: string | undefined;
68
+ }, {
69
+ name?: string | undefined;
70
+ semester?: "GANJIL" | "GENAP" | undefined;
71
+ startDate?: string | undefined;
72
+ endDate?: string | undefined;
73
+ }>, {
74
+ name?: string | undefined;
75
+ semester?: "GANJIL" | "GENAP" | undefined;
76
+ startDate?: string | undefined;
77
+ endDate?: string | undefined;
78
+ }, {
79
+ name?: string | undefined;
80
+ semester?: "GANJIL" | "GENAP" | undefined;
81
+ startDate?: string | undefined;
82
+ endDate?: string | undefined;
83
+ }>;
84
+ export declare const activateAcademicYearSchema: z.ZodObject<{
85
+ academicYearId: z.ZodString;
86
+ }, "strip", z.ZodTypeAny, {
87
+ academicYearId: string;
88
+ }, {
89
+ academicYearId: string;
90
+ }>;
91
+ export type Semester = z.infer<typeof semesterEnum>;
92
+ export type AcademicYear = z.infer<typeof academicYearSchema>;
93
+ export type CreateAcademicYearInput = z.infer<typeof createAcademicYearSchema>;
94
+ export type UpdateAcademicYearInput = z.infer<typeof updateAcademicYearSchema>;
95
+ export type ActivateAcademicYearInput = z.infer<typeof activateAcademicYearSchema>;
@@ -0,0 +1,86 @@
1
+ import { z } from "zod";
2
+ export declare const classroomSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ tenantId: z.ZodString;
5
+ academicYearId: z.ZodString;
6
+ name: z.ZodString;
7
+ gradeLevel: z.ZodString;
8
+ homeroomTeacherId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
9
+ homeroomTeacherName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
10
+ totalStudents: z.ZodDefault<z.ZodNumber>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ id: string;
13
+ name: string;
14
+ tenantId: string;
15
+ academicYearId: string;
16
+ gradeLevel: string;
17
+ totalStudents: number;
18
+ homeroomTeacherId?: string | null | undefined;
19
+ homeroomTeacherName?: string | null | undefined;
20
+ }, {
21
+ id: string;
22
+ name: string;
23
+ tenantId: string;
24
+ academicYearId: string;
25
+ gradeLevel: string;
26
+ homeroomTeacherId?: string | null | undefined;
27
+ homeroomTeacherName?: string | null | undefined;
28
+ totalStudents?: number | undefined;
29
+ }>;
30
+ export declare const createClassroomSchema: z.ZodObject<Pick<{
31
+ id: z.ZodString;
32
+ tenantId: z.ZodString;
33
+ academicYearId: z.ZodString;
34
+ name: z.ZodString;
35
+ gradeLevel: z.ZodString;
36
+ homeroomTeacherId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
37
+ homeroomTeacherName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
38
+ totalStudents: z.ZodDefault<z.ZodNumber>;
39
+ }, "name" | "academicYearId" | "gradeLevel" | "homeroomTeacherId">, "strip", z.ZodTypeAny, {
40
+ name: string;
41
+ academicYearId: string;
42
+ gradeLevel: string;
43
+ homeroomTeacherId?: string | null | undefined;
44
+ }, {
45
+ name: string;
46
+ academicYearId: string;
47
+ gradeLevel: string;
48
+ homeroomTeacherId?: string | null | undefined;
49
+ }>;
50
+ export declare const updateClassroomSchema: z.ZodObject<{
51
+ name: z.ZodOptional<z.ZodString>;
52
+ academicYearId: z.ZodOptional<z.ZodString>;
53
+ gradeLevel: z.ZodOptional<z.ZodString>;
54
+ homeroomTeacherId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ name?: string | undefined;
57
+ academicYearId?: string | undefined;
58
+ gradeLevel?: string | undefined;
59
+ homeroomTeacherId?: string | null | undefined;
60
+ }, {
61
+ name?: string | undefined;
62
+ academicYearId?: string | undefined;
63
+ gradeLevel?: string | undefined;
64
+ homeroomTeacherId?: string | null | undefined;
65
+ }>;
66
+ export declare const promoteClassStudentsSchema: z.ZodObject<{
67
+ sourceClassroomId: z.ZodString;
68
+ targetClassroomId: z.ZodString;
69
+ targetAcademicYearId: z.ZodString;
70
+ studentIds: z.ZodArray<z.ZodString, "many">;
71
+ }, "strip", z.ZodTypeAny, {
72
+ sourceClassroomId: string;
73
+ targetClassroomId: string;
74
+ targetAcademicYearId: string;
75
+ studentIds: string[];
76
+ }, {
77
+ sourceClassroomId: string;
78
+ targetClassroomId: string;
79
+ targetAcademicYearId: string;
80
+ studentIds: string[];
81
+ }>;
82
+ export type ClassRoom = z.infer<typeof classroomSchema>;
83
+ export type Classroom = ClassRoom;
84
+ export type CreateClassroomInput = z.infer<typeof createClassroomSchema>;
85
+ export type UpdateClassroomInput = z.infer<typeof updateClassroomSchema>;
86
+ export type PromoteClassStudentsInput = z.infer<typeof promoteClassStudentsSchema>;
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ export declare const classAttendanceUpdateItemSchema: z.ZodObject<{
3
+ studentId: z.ZodString;
4
+ status: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
5
+ notes: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
8
+ studentId: string;
9
+ notes?: string | undefined;
10
+ }, {
11
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
12
+ studentId: string;
13
+ notes?: string | undefined;
14
+ }>;
15
+ export declare const updateClassAttendanceRequestSchema: z.ZodObject<{
16
+ teachingScheduleId: z.ZodString;
17
+ academicYearId: z.ZodString;
18
+ classRoomId: z.ZodString;
19
+ date: z.ZodString;
20
+ attendances: z.ZodArray<z.ZodObject<{
21
+ studentId: z.ZodString;
22
+ status: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
23
+ notes: z.ZodOptional<z.ZodString>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
26
+ studentId: string;
27
+ notes?: string | undefined;
28
+ }, {
29
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
30
+ studentId: string;
31
+ notes?: string | undefined;
32
+ }>, "many">;
33
+ }, "strip", z.ZodTypeAny, {
34
+ date: string;
35
+ academicYearId: string;
36
+ classRoomId: string;
37
+ teachingScheduleId: string;
38
+ attendances: {
39
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
40
+ studentId: string;
41
+ notes?: string | undefined;
42
+ }[];
43
+ }, {
44
+ date: string;
45
+ academicYearId: string;
46
+ classRoomId: string;
47
+ teachingScheduleId: string;
48
+ attendances: {
49
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
50
+ studentId: string;
51
+ notes?: string | undefined;
52
+ }[];
53
+ }>;
54
+ export type ClassAttendanceUpdateItem = z.infer<typeof classAttendanceUpdateItemSchema>;
55
+ export type UpdateClassAttendanceRequest = z.infer<typeof updateClassAttendanceRequestSchema>;
@@ -0,0 +1,108 @@
1
+ import { z } from "zod";
2
+ export declare const attendanceStatusEnum: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
3
+ export declare const kioskScanItemSchema: z.ZodObject<{
4
+ clientUuid: z.ZodString;
5
+ tenantId: z.ZodString;
6
+ studentId: z.ZodString;
7
+ barcodeScanned: z.ZodString;
8
+ scannedAt: z.ZodString;
9
+ status: z.ZodDefault<z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>>;
10
+ notes: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
13
+ tenantId: string;
14
+ clientUuid: string;
15
+ studentId: string;
16
+ barcodeScanned: string;
17
+ scannedAt: string;
18
+ notes?: string | undefined;
19
+ }, {
20
+ tenantId: string;
21
+ clientUuid: string;
22
+ studentId: string;
23
+ barcodeScanned: string;
24
+ scannedAt: string;
25
+ status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
26
+ notes?: string | undefined;
27
+ }>;
28
+ export declare const batchSyncAttendanceRequestSchema: z.ZodObject<{
29
+ tenantId: z.ZodString;
30
+ gateKeeperUserId: z.ZodString;
31
+ academicYearId: z.ZodString;
32
+ syncedAt: z.ZodString;
33
+ records: z.ZodArray<z.ZodObject<{
34
+ clientUuid: z.ZodString;
35
+ tenantId: z.ZodString;
36
+ studentId: z.ZodString;
37
+ barcodeScanned: z.ZodString;
38
+ scannedAt: z.ZodString;
39
+ status: z.ZodDefault<z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>>;
40
+ notes: z.ZodOptional<z.ZodString>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
43
+ tenantId: string;
44
+ clientUuid: string;
45
+ studentId: string;
46
+ barcodeScanned: string;
47
+ scannedAt: string;
48
+ notes?: string | undefined;
49
+ }, {
50
+ tenantId: string;
51
+ clientUuid: string;
52
+ studentId: string;
53
+ barcodeScanned: string;
54
+ scannedAt: string;
55
+ status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
56
+ notes?: string | undefined;
57
+ }>, "many">;
58
+ }, "strip", z.ZodTypeAny, {
59
+ tenantId: string;
60
+ academicYearId: string;
61
+ gateKeeperUserId: string;
62
+ syncedAt: string;
63
+ records: {
64
+ status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
65
+ tenantId: string;
66
+ clientUuid: string;
67
+ studentId: string;
68
+ barcodeScanned: string;
69
+ scannedAt: string;
70
+ notes?: string | undefined;
71
+ }[];
72
+ }, {
73
+ tenantId: string;
74
+ academicYearId: string;
75
+ gateKeeperUserId: string;
76
+ syncedAt: string;
77
+ records: {
78
+ tenantId: string;
79
+ clientUuid: string;
80
+ studentId: string;
81
+ barcodeScanned: string;
82
+ scannedAt: string;
83
+ status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
84
+ notes?: string | undefined;
85
+ }[];
86
+ }>;
87
+ export declare const batchSyncAttendanceResponseSchema: z.ZodObject<{
88
+ totalReceived: z.ZodNumber;
89
+ totalSaved: z.ZodNumber;
90
+ totalDuplicates: z.ZodNumber;
91
+ duplicateClientUuids: z.ZodArray<z.ZodString, "many">;
92
+ }, "strip", z.ZodTypeAny, {
93
+ totalReceived: number;
94
+ totalSaved: number;
95
+ totalDuplicates: number;
96
+ duplicateClientUuids: string[];
97
+ }, {
98
+ totalReceived: number;
99
+ totalSaved: number;
100
+ totalDuplicates: number;
101
+ duplicateClientUuids: string[];
102
+ }>;
103
+ export type AttendanceStatus = z.infer<typeof attendanceStatusEnum>;
104
+ export type KioskScanItem = z.infer<typeof kioskScanItemSchema>;
105
+ export type KioskScanItemInput = z.input<typeof kioskScanItemSchema>;
106
+ export type BatchSyncAttendanceRequest = z.infer<typeof batchSyncAttendanceRequestSchema>;
107
+ export type BatchSyncAttendanceRequestInput = z.input<typeof batchSyncAttendanceRequestSchema>;
108
+ export type BatchSyncAttendanceResponse = z.infer<typeof batchSyncAttendanceResponseSchema>;
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ export declare const rollingBarcodePayloadSchema: z.ZodObject<{
3
+ tenantId: z.ZodString;
4
+ kioskToken: z.ZodString;
5
+ expiresAt: z.ZodNumber;
6
+ hash: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ tenantId: string;
9
+ kioskToken: string;
10
+ expiresAt: number;
11
+ hash: string;
12
+ }, {
13
+ tenantId: string;
14
+ kioskToken: string;
15
+ expiresAt: number;
16
+ hash: string;
17
+ }>;
18
+ export declare const teacherScanDynamicBarcodeRequestSchema: z.ZodObject<{
19
+ tenantId: z.ZodString;
20
+ teacherUserId: z.ZodString;
21
+ scannedPayload: z.ZodString;
22
+ scannedAt: z.ZodString;
23
+ }, "strip", z.ZodTypeAny, {
24
+ tenantId: string;
25
+ scannedAt: string;
26
+ teacherUserId: string;
27
+ scannedPayload: string;
28
+ }, {
29
+ tenantId: string;
30
+ scannedAt: string;
31
+ teacherUserId: string;
32
+ scannedPayload: string;
33
+ }>;
34
+ export type RollingBarcodePayload = z.infer<typeof rollingBarcodePayloadSchema>;
35
+ export type TeacherScanDynamicBarcodeRequest = z.infer<typeof teacherScanDynamicBarcodeRequestSchema>;
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ export declare const loginRequestSchema: z.ZodObject<{
3
+ usernameOrEmail: z.ZodString;
4
+ password: z.ZodString;
5
+ tenantSlug: z.ZodOptional<z.ZodString>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ usernameOrEmail: string;
8
+ password: string;
9
+ tenantSlug?: string | undefined;
10
+ }, {
11
+ usernameOrEmail: string;
12
+ password: string;
13
+ tenantSlug?: string | undefined;
14
+ }>;
15
+ export declare const authenticatedUserRoleSummarySchema: z.ZodObject<{
16
+ roleId: z.ZodString;
17
+ roleName: z.ZodString;
18
+ roleSlug: z.ZodString;
19
+ permissions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ permissions: Record<string, string[]>;
22
+ roleId: string;
23
+ roleName: string;
24
+ roleSlug: string;
25
+ }, {
26
+ permissions: Record<string, string[]>;
27
+ roleId: string;
28
+ roleName: string;
29
+ roleSlug: string;
30
+ }>;
31
+ export declare const authSessionSchema: z.ZodObject<{
32
+ userId: z.ZodString;
33
+ tenantId: z.ZodString;
34
+ tenantSlug: z.ZodString;
35
+ activeAcademicYearId: z.ZodString;
36
+ activeRole: z.ZodObject<{
37
+ roleId: z.ZodString;
38
+ roleName: z.ZodString;
39
+ roleSlug: z.ZodString;
40
+ permissions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ permissions: Record<string, string[]>;
43
+ roleId: string;
44
+ roleName: string;
45
+ roleSlug: string;
46
+ }, {
47
+ permissions: Record<string, string[]>;
48
+ roleId: string;
49
+ roleName: string;
50
+ roleSlug: string;
51
+ }>;
52
+ availableRoles: z.ZodArray<z.ZodObject<{
53
+ roleId: z.ZodString;
54
+ roleName: z.ZodString;
55
+ roleSlug: z.ZodString;
56
+ permissions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ permissions: Record<string, string[]>;
59
+ roleId: string;
60
+ roleName: string;
61
+ roleSlug: string;
62
+ }, {
63
+ permissions: Record<string, string[]>;
64
+ roleId: string;
65
+ roleName: string;
66
+ roleSlug: string;
67
+ }>, "many">;
68
+ }, "strip", z.ZodTypeAny, {
69
+ tenantId: string;
70
+ userId: string;
71
+ tenantSlug: string;
72
+ activeAcademicYearId: string;
73
+ activeRole: {
74
+ permissions: Record<string, string[]>;
75
+ roleId: string;
76
+ roleName: string;
77
+ roleSlug: string;
78
+ };
79
+ availableRoles: {
80
+ permissions: Record<string, string[]>;
81
+ roleId: string;
82
+ roleName: string;
83
+ roleSlug: string;
84
+ }[];
85
+ }, {
86
+ tenantId: string;
87
+ userId: string;
88
+ tenantSlug: string;
89
+ activeAcademicYearId: string;
90
+ activeRole: {
91
+ permissions: Record<string, string[]>;
92
+ roleId: string;
93
+ roleName: string;
94
+ roleSlug: string;
95
+ };
96
+ availableRoles: {
97
+ permissions: Record<string, string[]>;
98
+ roleId: string;
99
+ roleName: string;
100
+ roleSlug: string;
101
+ }[];
102
+ }>;
103
+ export type LoginRequest = z.infer<typeof loginRequestSchema>;
104
+ export type AuthenticatedUserRoleSummary = z.infer<typeof authenticatedUserRoleSummarySchema>;
105
+ export type AuthSession = z.infer<typeof authSessionSchema>;
@@ -0,0 +1,57 @@
1
+ import { z } from "zod";
2
+ export declare const systemRoleSlugSchema: z.ZodEnum<["superadmin", "admin_sekolah", "guru_piket", "guru_pengajar", "tata_usaha", "kepala_sekolah", "siswa"]>;
3
+ export declare const roleSchema: z.ZodObject<{
4
+ id: z.ZodString;
5
+ tenantId: z.ZodNullable<z.ZodString>;
6
+ name: z.ZodString;
7
+ slug: z.ZodString;
8
+ permissions: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ id: string;
11
+ slug: string;
12
+ name: string;
13
+ tenantId: string | null;
14
+ permissions: Record<string, string[]>;
15
+ }, {
16
+ id: string;
17
+ slug: string;
18
+ name: string;
19
+ tenantId: string | null;
20
+ permissions: Record<string, string[]>;
21
+ }>;
22
+ export declare const userRolePivotSchema: z.ZodObject<{
23
+ id: z.ZodString;
24
+ tenantId: z.ZodString;
25
+ userId: z.ZodString;
26
+ roleId: z.ZodString;
27
+ academicYearId: z.ZodString;
28
+ isActive: z.ZodDefault<z.ZodBoolean>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ id: string;
31
+ tenantId: string;
32
+ userId: string;
33
+ roleId: string;
34
+ academicYearId: string;
35
+ isActive: boolean;
36
+ }, {
37
+ id: string;
38
+ tenantId: string;
39
+ userId: string;
40
+ roleId: string;
41
+ academicYearId: string;
42
+ isActive?: boolean | undefined;
43
+ }>;
44
+ export declare const switchRoleRequestSchema: z.ZodObject<{
45
+ targetRoleId: z.ZodString;
46
+ academicYearId: z.ZodString;
47
+ }, "strip", z.ZodTypeAny, {
48
+ academicYearId: string;
49
+ targetRoleId: string;
50
+ }, {
51
+ academicYearId: string;
52
+ targetRoleId: string;
53
+ }>;
54
+ export type SystemRoleSlug = z.infer<typeof systemRoleSlugSchema>;
55
+ export type Role = z.infer<typeof roleSchema>;
56
+ export type UserRolePivot = z.infer<typeof userRolePivotSchema>;
57
+ export type SwitchRoleRequest = z.infer<typeof switchRoleRequestSchema>;
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ export declare const uuidSchema: z.ZodString;
3
+ export declare const timestampSchema: z.ZodString;
4
+ export declare const dateStringSchema: z.ZodString;
5
+ export declare const timeStringSchema: z.ZodString;
6
+ export declare const baseResponseSchema: <T extends z.ZodTypeAny>(dataSchema: T) => z.ZodObject<{
7
+ success: z.ZodBoolean;
8
+ message: z.ZodString;
9
+ data: T;
10
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
11
+ success: z.ZodBoolean;
12
+ message: z.ZodString;
13
+ data: T;
14
+ }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
15
+ success: z.ZodBoolean;
16
+ message: z.ZodString;
17
+ data: T;
18
+ }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
19
+ export declare const apiErrorResponseSchema: z.ZodObject<{
20
+ success: z.ZodLiteral<false>;
21
+ message: z.ZodString;
22
+ errors: z.ZodOptional<z.ZodArray<z.ZodObject<{
23
+ field: z.ZodOptional<z.ZodString>;
24
+ message: z.ZodString;
25
+ }, "strip", z.ZodTypeAny, {
26
+ message: string;
27
+ field?: string | undefined;
28
+ }, {
29
+ message: string;
30
+ field?: string | undefined;
31
+ }>, "many">>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ message: string;
34
+ success: false;
35
+ errors?: {
36
+ message: string;
37
+ field?: string | undefined;
38
+ }[] | undefined;
39
+ }, {
40
+ message: string;
41
+ success: false;
42
+ errors?: {
43
+ message: string;
44
+ field?: string | undefined;
45
+ }[] | undefined;
46
+ }>;
47
+ export type Uuid = z.infer<typeof uuidSchema>;
48
+ export type DateString = z.infer<typeof dateStringSchema>;
49
+ export type TimeString = z.infer<typeof timeStringSchema>;
50
+ export type BaseResponse<T extends z.ZodTypeAny> = z.infer<ReturnType<typeof baseResponseSchema<T>>>;
51
+ export type ApiErrorResponse = z.infer<typeof apiErrorResponseSchema>;
@@ -0,0 +1,58 @@
1
+ import { z } from "zod";
2
+ export declare const paginationQuerySchema: z.ZodObject<{
3
+ page: z.ZodDefault<z.ZodNumber>;
4
+ limit: z.ZodDefault<z.ZodNumber>;
5
+ search: z.ZodOptional<z.ZodString>;
6
+ sortBy: z.ZodOptional<z.ZodString>;
7
+ sortOrder: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ page: number;
10
+ limit: number;
11
+ sortOrder: "asc" | "desc";
12
+ search?: string | undefined;
13
+ sortBy?: string | undefined;
14
+ }, {
15
+ page?: number | undefined;
16
+ limit?: number | undefined;
17
+ search?: string | undefined;
18
+ sortBy?: string | undefined;
19
+ sortOrder?: "asc" | "desc" | undefined;
20
+ }>;
21
+ export declare const paginatedDataSchema: <T extends z.ZodTypeAny>(itemSchema: T) => z.ZodObject<{
22
+ items: z.ZodArray<T, "many">;
23
+ meta: z.ZodObject<{
24
+ currentPage: z.ZodNumber;
25
+ pageSize: z.ZodNumber;
26
+ totalItems: z.ZodNumber;
27
+ totalPages: z.ZodNumber;
28
+ }, "strip", z.ZodTypeAny, {
29
+ currentPage: number;
30
+ pageSize: number;
31
+ totalItems: number;
32
+ totalPages: number;
33
+ }, {
34
+ currentPage: number;
35
+ pageSize: number;
36
+ totalItems: number;
37
+ totalPages: number;
38
+ }>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ items: T["_output"][];
41
+ meta: {
42
+ currentPage: number;
43
+ pageSize: number;
44
+ totalItems: number;
45
+ totalPages: number;
46
+ };
47
+ }, {
48
+ items: T["_input"][];
49
+ meta: {
50
+ currentPage: number;
51
+ pageSize: number;
52
+ totalItems: number;
53
+ totalPages: number;
54
+ };
55
+ }>;
56
+ export type PaginationQuery = z.infer<typeof paginationQuerySchema>;
57
+ export type PaginationQueryInput = z.input<typeof paginationQuerySchema>;
58
+ export type PaginatedData<T extends z.ZodTypeAny> = z.infer<ReturnType<typeof paginatedDataSchema<T>>>;
@@ -0,0 +1,13 @@
1
+ export * from "./common/common.schema.js";
2
+ export * from "./common/pagination.schema.js";
3
+ export * from "./tenant/tenant.schema.js";
4
+ export * from "./tenant/attendance-shift.schema.js";
5
+ export * from "./auth/role.schema.js";
6
+ export * from "./auth/auth.schema.js";
7
+ export * from "./academic/academic-year.schema.js";
8
+ export * from "./academic/class-room.schema.js";
9
+ export * from "./user/user.schema.js";
10
+ export * from "./user/student.schema.js";
11
+ export * from "./attendance/attendance-kiosk.schema.js";
12
+ export * from "./attendance/attendance-class.schema.js";
13
+ export * from "./attendance/barcode-rolling.schema.js";