@aibrains/shared-types 0.7.1 → 0.9.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.
@@ -313,8 +313,8 @@ export declare const createAssignmentSchema: z.ZodObject<{
313
313
  classroomId: string;
314
314
  isExtraCredit: boolean;
315
315
  pointsPossible: number;
316
- assignedDate: string;
317
316
  dueDate: string;
317
+ assignedDate: string;
318
318
  dueDateTimeZone: string;
319
319
  lockAfterDueDate: boolean;
320
320
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -365,8 +365,8 @@ export declare const createAssignmentSchema: z.ZodObject<{
365
365
  title: string;
366
366
  classroomId: string;
367
367
  pointsPossible: number;
368
- assignedDate: string;
369
368
  dueDate: string;
369
+ assignedDate: string;
370
370
  status?: "archived" | "closed" | "draft" | "published" | undefined;
371
371
  description?: string | undefined;
372
372
  gradingPeriodId?: string | undefined;
@@ -564,9 +564,9 @@ export declare const updateAssignmentSchema: z.ZodObject<Omit<{
564
564
  isExtraCredit?: boolean | undefined;
565
565
  pointsPossible?: number | undefined;
566
566
  categoryId?: string | undefined;
567
+ dueDate?: string | undefined;
567
568
  instructions?: string | undefined;
568
569
  assignedDate?: string | undefined;
569
- dueDate?: string | undefined;
570
570
  dueDateTimeZone?: string | undefined;
571
571
  lockAfterDueDate?: boolean | undefined;
572
572
  submissionType?: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion" | undefined;
@@ -617,9 +617,9 @@ export declare const updateAssignmentSchema: z.ZodObject<Omit<{
617
617
  isExtraCredit?: boolean | undefined;
618
618
  pointsPossible?: number | undefined;
619
619
  categoryId?: string | undefined;
620
+ dueDate?: string | undefined;
620
621
  instructions?: string | undefined;
621
622
  assignedDate?: string | undefined;
622
- dueDate?: string | undefined;
623
623
  dueDateTimeZone?: string | undefined;
624
624
  lockAfterDueDate?: boolean | undefined;
625
625
  submissionType?: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion" | undefined;
@@ -821,8 +821,8 @@ export declare const assignmentResponseSchema: z.ZodObject<{
821
821
  classroomId: string;
822
822
  isExtraCredit: boolean;
823
823
  pointsPossible: number;
824
- assignedDate: string;
825
824
  dueDate: string;
825
+ assignedDate: string;
826
826
  dueDateTimeZone: string;
827
827
  lockAfterDueDate: boolean;
828
828
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -886,8 +886,8 @@ export declare const assignmentResponseSchema: z.ZodObject<{
886
886
  classroomId: string;
887
887
  isExtraCredit: boolean;
888
888
  pointsPossible: number;
889
- assignedDate: string;
890
889
  dueDate: string;
890
+ assignedDate: string;
891
891
  dueDateTimeZone: string;
892
892
  lockAfterDueDate: boolean;
893
893
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -1103,8 +1103,8 @@ export declare const assignmentListResponseSchema: z.ZodObject<{
1103
1103
  classroomId: string;
1104
1104
  isExtraCredit: boolean;
1105
1105
  pointsPossible: number;
1106
- assignedDate: string;
1107
1106
  dueDate: string;
1107
+ assignedDate: string;
1108
1108
  dueDateTimeZone: string;
1109
1109
  lockAfterDueDate: boolean;
1110
1110
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -1168,8 +1168,8 @@ export declare const assignmentListResponseSchema: z.ZodObject<{
1168
1168
  classroomId: string;
1169
1169
  isExtraCredit: boolean;
1170
1170
  pointsPossible: number;
1171
- assignedDate: string;
1172
1171
  dueDate: string;
1172
+ assignedDate: string;
1173
1173
  dueDateTimeZone: string;
1174
1174
  lockAfterDueDate: boolean;
1175
1175
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -1238,8 +1238,8 @@ export declare const assignmentListResponseSchema: z.ZodObject<{
1238
1238
  classroomId: string;
1239
1239
  isExtraCredit: boolean;
1240
1240
  pointsPossible: number;
1241
- assignedDate: string;
1242
1241
  dueDate: string;
1242
+ assignedDate: string;
1243
1243
  dueDateTimeZone: string;
1244
1244
  lockAfterDueDate: boolean;
1245
1245
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -1308,8 +1308,8 @@ export declare const assignmentListResponseSchema: z.ZodObject<{
1308
1308
  classroomId: string;
1309
1309
  isExtraCredit: boolean;
1310
1310
  pointsPossible: number;
1311
- assignedDate: string;
1312
1311
  dueDate: string;
1312
+ assignedDate: string;
1313
1313
  dueDateTimeZone: string;
1314
1314
  lockAfterDueDate: boolean;
1315
1315
  submissionType: "none" | "online_text" | "online_upload" | "external_url" | "paper" | "discussion";
@@ -395,6 +395,7 @@ export declare const attendanceListResponseSchema: z.ZodObject<{
395
395
  export type AttendanceListResponseDto = z.infer<typeof attendanceListResponseSchema>;
396
396
  export declare const bulkAttendanceRecordSchema: z.ZodObject<{
397
397
  studentId: z.ZodString;
398
+ studentName: z.ZodOptional<z.ZodString>;
398
399
  status: z.ZodEnum<["present", "absent", "tardy", "excused", "late", "early_departure", "half_day", "remote"]>;
399
400
  checkInTime: z.ZodOptional<z.ZodString>;
400
401
  minutesLate: z.ZodOptional<z.ZodNumber>;
@@ -405,12 +406,14 @@ export declare const bulkAttendanceRecordSchema: z.ZodObject<{
405
406
  notes?: string | undefined;
406
407
  checkInTime?: string | undefined;
407
408
  minutesLate?: number | undefined;
409
+ studentName?: string | undefined;
408
410
  }, {
409
411
  status: "half_day" | "present" | "absent" | "late" | "excused" | "tardy" | "early_departure" | "remote";
410
412
  studentId: string;
411
413
  notes?: string | undefined;
412
414
  checkInTime?: string | undefined;
413
415
  minutesLate?: number | undefined;
416
+ studentName?: string | undefined;
414
417
  }>;
415
418
  export type BulkAttendanceRecordDto = z.infer<typeof bulkAttendanceRecordSchema>;
416
419
  export declare const bulkAttendanceSchema: z.ZodObject<{
@@ -421,6 +424,7 @@ export declare const bulkAttendanceSchema: z.ZodObject<{
421
424
  attendanceType: z.ZodDefault<z.ZodEnum<["daily", "period", "event"]>>;
422
425
  records: z.ZodArray<z.ZodObject<{
423
426
  studentId: z.ZodString;
427
+ studentName: z.ZodOptional<z.ZodString>;
424
428
  status: z.ZodEnum<["present", "absent", "tardy", "excused", "late", "early_departure", "half_day", "remote"]>;
425
429
  checkInTime: z.ZodOptional<z.ZodString>;
426
430
  minutesLate: z.ZodOptional<z.ZodNumber>;
@@ -431,12 +435,14 @@ export declare const bulkAttendanceSchema: z.ZodObject<{
431
435
  notes?: string | undefined;
432
436
  checkInTime?: string | undefined;
433
437
  minutesLate?: number | undefined;
438
+ studentName?: string | undefined;
434
439
  }, {
435
440
  status: "half_day" | "present" | "absent" | "late" | "excused" | "tardy" | "early_departure" | "remote";
436
441
  studentId: string;
437
442
  notes?: string | undefined;
438
443
  checkInTime?: string | undefined;
439
444
  minutesLate?: number | undefined;
445
+ studentName?: string | undefined;
440
446
  }>, "many">;
441
447
  }, "strip", z.ZodTypeAny, {
442
448
  date: string;
@@ -448,6 +454,7 @@ export declare const bulkAttendanceSchema: z.ZodObject<{
448
454
  notes?: string | undefined;
449
455
  checkInTime?: string | undefined;
450
456
  minutesLate?: number | undefined;
457
+ studentName?: string | undefined;
451
458
  }[];
452
459
  periodNumber?: number | undefined;
453
460
  classroomId?: string | undefined;
@@ -460,6 +467,7 @@ export declare const bulkAttendanceSchema: z.ZodObject<{
460
467
  notes?: string | undefined;
461
468
  checkInTime?: string | undefined;
462
469
  minutesLate?: number | undefined;
470
+ studentName?: string | undefined;
463
471
  }[];
464
472
  periodNumber?: number | undefined;
465
473
  classroomId?: string | undefined;
@@ -590,11 +598,13 @@ export declare const dailyAttendanceSummarySchema: z.ZodObject<{
590
598
  date: z.ZodEffects<z.ZodString, string, string>;
591
599
  schoolId: z.ZodString;
592
600
  totalStudents: z.ZodNumber;
601
+ totalRecorded: z.ZodOptional<z.ZodNumber>;
593
602
  present: z.ZodNumber;
594
603
  absent: z.ZodNumber;
595
604
  late: z.ZodNumber;
596
605
  excused: z.ZodNumber;
597
606
  halfDay: z.ZodNumber;
607
+ remote: z.ZodOptional<z.ZodNumber>;
598
608
  attendanceRate: z.ZodNumber;
599
609
  byGradeLevel: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
600
610
  total: z.ZodNumber;
@@ -622,6 +632,8 @@ export declare const dailyAttendanceSummarySchema: z.ZodObject<{
622
632
  attendanceRate: number;
623
633
  totalStudents: number;
624
634
  halfDay: number;
635
+ remote?: number | undefined;
636
+ totalRecorded?: number | undefined;
625
637
  byGradeLevel?: Record<string, {
626
638
  total: number;
627
639
  present: number;
@@ -638,6 +650,8 @@ export declare const dailyAttendanceSummarySchema: z.ZodObject<{
638
650
  attendanceRate: number;
639
651
  totalStudents: number;
640
652
  halfDay: number;
653
+ remote?: number | undefined;
654
+ totalRecorded?: number | undefined;
641
655
  byGradeLevel?: Record<string, {
642
656
  total: number;
643
657
  present: number;
@@ -759,4 +773,410 @@ export declare const dailyAttendanceReportSchema: z.ZodObject<{
759
773
  }> | undefined;
760
774
  }>;
761
775
  export type DailyAttendanceReportDto = z.infer<typeof dailyAttendanceReportSchema>;
776
+ export declare const attendanceOverviewResponseSchema: z.ZodObject<{
777
+ todaySummary: z.ZodObject<z.objectUtil.extendShape<{
778
+ date: z.ZodEffects<z.ZodString, string, string>;
779
+ schoolId: z.ZodString;
780
+ totalStudents: z.ZodNumber;
781
+ totalRecorded: z.ZodOptional<z.ZodNumber>;
782
+ present: z.ZodNumber;
783
+ absent: z.ZodNumber;
784
+ late: z.ZodNumber;
785
+ excused: z.ZodNumber;
786
+ halfDay: z.ZodNumber;
787
+ remote: z.ZodOptional<z.ZodNumber>;
788
+ attendanceRate: z.ZodNumber;
789
+ byGradeLevel: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
790
+ total: z.ZodNumber;
791
+ present: z.ZodNumber;
792
+ absent: z.ZodNumber;
793
+ rate: z.ZodNumber;
794
+ }, "strip", z.ZodTypeAny, {
795
+ total: number;
796
+ present: number;
797
+ absent: number;
798
+ rate: number;
799
+ }, {
800
+ total: number;
801
+ present: number;
802
+ absent: number;
803
+ rate: number;
804
+ }>>>;
805
+ }, {
806
+ totalRecorded: z.ZodNumber;
807
+ remote: z.ZodOptional<z.ZodNumber>;
808
+ }>, "strip", z.ZodTypeAny, {
809
+ date: string;
810
+ schoolId: string;
811
+ present: number;
812
+ absent: number;
813
+ late: number;
814
+ excused: number;
815
+ attendanceRate: number;
816
+ totalStudents: number;
817
+ totalRecorded: number;
818
+ halfDay: number;
819
+ remote?: number | undefined;
820
+ byGradeLevel?: Record<string, {
821
+ total: number;
822
+ present: number;
823
+ absent: number;
824
+ rate: number;
825
+ }> | undefined;
826
+ }, {
827
+ date: string;
828
+ schoolId: string;
829
+ present: number;
830
+ absent: number;
831
+ late: number;
832
+ excused: number;
833
+ attendanceRate: number;
834
+ totalStudents: number;
835
+ totalRecorded: number;
836
+ halfDay: number;
837
+ remote?: number | undefined;
838
+ byGradeLevel?: Record<string, {
839
+ total: number;
840
+ present: number;
841
+ absent: number;
842
+ rate: number;
843
+ }> | undefined;
844
+ }>;
845
+ sectionCompletion: z.ZodObject<{
846
+ totalSections: z.ZodNumber;
847
+ sectionsWithAttendance: z.ZodNumber;
848
+ sections: z.ZodArray<z.ZodObject<{
849
+ sectionId: z.ZodString;
850
+ sectionNumber: z.ZodString;
851
+ courseName: z.ZodString;
852
+ studentCount: z.ZodNumber;
853
+ recordedCount: z.ZodNumber;
854
+ isComplete: z.ZodBoolean;
855
+ }, "strip", z.ZodTypeAny, {
856
+ studentCount: number;
857
+ sectionId: string;
858
+ sectionNumber: string;
859
+ courseName: string;
860
+ recordedCount: number;
861
+ isComplete: boolean;
862
+ }, {
863
+ studentCount: number;
864
+ sectionId: string;
865
+ sectionNumber: string;
866
+ courseName: string;
867
+ recordedCount: number;
868
+ isComplete: boolean;
869
+ }>, "many">;
870
+ }, "strip", z.ZodTypeAny, {
871
+ totalSections: number;
872
+ sectionsWithAttendance: number;
873
+ sections: {
874
+ studentCount: number;
875
+ sectionId: string;
876
+ sectionNumber: string;
877
+ courseName: string;
878
+ recordedCount: number;
879
+ isComplete: boolean;
880
+ }[];
881
+ }, {
882
+ totalSections: number;
883
+ sectionsWithAttendance: number;
884
+ sections: {
885
+ studentCount: number;
886
+ sectionId: string;
887
+ sectionNumber: string;
888
+ courseName: string;
889
+ recordedCount: number;
890
+ isComplete: boolean;
891
+ }[];
892
+ }>;
893
+ trend: z.ZodArray<z.ZodObject<{
894
+ date: z.ZodEffects<z.ZodString, string, string>;
895
+ schoolId: z.ZodString;
896
+ totalStudents: z.ZodNumber;
897
+ totalRecorded: z.ZodOptional<z.ZodNumber>;
898
+ present: z.ZodNumber;
899
+ absent: z.ZodNumber;
900
+ late: z.ZodNumber;
901
+ excused: z.ZodNumber;
902
+ halfDay: z.ZodNumber;
903
+ remote: z.ZodOptional<z.ZodNumber>;
904
+ attendanceRate: z.ZodNumber;
905
+ byGradeLevel: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
906
+ total: z.ZodNumber;
907
+ present: z.ZodNumber;
908
+ absent: z.ZodNumber;
909
+ rate: z.ZodNumber;
910
+ }, "strip", z.ZodTypeAny, {
911
+ total: number;
912
+ present: number;
913
+ absent: number;
914
+ rate: number;
915
+ }, {
916
+ total: number;
917
+ present: number;
918
+ absent: number;
919
+ rate: number;
920
+ }>>>;
921
+ }, "strip", z.ZodTypeAny, {
922
+ date: string;
923
+ schoolId: string;
924
+ present: number;
925
+ absent: number;
926
+ late: number;
927
+ excused: number;
928
+ attendanceRate: number;
929
+ totalStudents: number;
930
+ halfDay: number;
931
+ remote?: number | undefined;
932
+ totalRecorded?: number | undefined;
933
+ byGradeLevel?: Record<string, {
934
+ total: number;
935
+ present: number;
936
+ absent: number;
937
+ rate: number;
938
+ }> | undefined;
939
+ }, {
940
+ date: string;
941
+ schoolId: string;
942
+ present: number;
943
+ absent: number;
944
+ late: number;
945
+ excused: number;
946
+ attendanceRate: number;
947
+ totalStudents: number;
948
+ halfDay: number;
949
+ remote?: number | undefined;
950
+ totalRecorded?: number | undefined;
951
+ byGradeLevel?: Record<string, {
952
+ total: number;
953
+ present: number;
954
+ absent: number;
955
+ rate: number;
956
+ }> | undefined;
957
+ }>, "many">;
958
+ periodAverages: z.ZodObject<{
959
+ last7Days: z.ZodNumber;
960
+ last30Days: z.ZodNumber;
961
+ academicYear: z.ZodNumber;
962
+ }, "strip", z.ZodTypeAny, {
963
+ last7Days: number;
964
+ last30Days: number;
965
+ academicYear: number;
966
+ }, {
967
+ last7Days: number;
968
+ last30Days: number;
969
+ academicYear: number;
970
+ }>;
971
+ atRiskStudents: z.ZodArray<z.ZodObject<{
972
+ studentId: z.ZodString;
973
+ studentName: z.ZodString;
974
+ gradeLevel: z.ZodOptional<z.ZodString>;
975
+ attendanceRate: z.ZodNumber;
976
+ totalDays: z.ZodNumber;
977
+ absentDays: z.ZodNumber;
978
+ trend: z.ZodEnum<["improving", "declining", "stable"]>;
979
+ }, "strip", z.ZodTypeAny, {
980
+ totalDays: number;
981
+ studentId: string;
982
+ attendanceRate: number;
983
+ studentName: string;
984
+ absentDays: number;
985
+ trend: "improving" | "declining" | "stable";
986
+ gradeLevel?: string | undefined;
987
+ }, {
988
+ totalDays: number;
989
+ studentId: string;
990
+ attendanceRate: number;
991
+ studentName: string;
992
+ absentDays: number;
993
+ trend: "improving" | "declining" | "stable";
994
+ gradeLevel?: string | undefined;
995
+ }>, "many">;
996
+ totalAtRiskCount: z.ZodNumber;
997
+ absenceBreakdown: z.ZodObject<{
998
+ unexcused: z.ZodNumber;
999
+ excused: z.ZodNumber;
1000
+ late: z.ZodNumber;
1001
+ halfDay: z.ZodNumber;
1002
+ remote: z.ZodNumber;
1003
+ }, "strip", z.ZodTypeAny, {
1004
+ late: number;
1005
+ excused: number;
1006
+ remote: number;
1007
+ halfDay: number;
1008
+ unexcused: number;
1009
+ }, {
1010
+ late: number;
1011
+ excused: number;
1012
+ remote: number;
1013
+ halfDay: number;
1014
+ unexcused: number;
1015
+ }>;
1016
+ dayOfWeekPattern: z.ZodRecord<z.ZodString, z.ZodObject<{
1017
+ avgRate: z.ZodNumber;
1018
+ avgAbsent: z.ZodNumber;
1019
+ }, "strip", z.ZodTypeAny, {
1020
+ avgRate: number;
1021
+ avgAbsent: number;
1022
+ }, {
1023
+ avgRate: number;
1024
+ avgAbsent: number;
1025
+ }>>;
1026
+ }, "strip", z.ZodTypeAny, {
1027
+ todaySummary: {
1028
+ date: string;
1029
+ schoolId: string;
1030
+ present: number;
1031
+ absent: number;
1032
+ late: number;
1033
+ excused: number;
1034
+ attendanceRate: number;
1035
+ totalStudents: number;
1036
+ totalRecorded: number;
1037
+ halfDay: number;
1038
+ remote?: number | undefined;
1039
+ byGradeLevel?: Record<string, {
1040
+ total: number;
1041
+ present: number;
1042
+ absent: number;
1043
+ rate: number;
1044
+ }> | undefined;
1045
+ };
1046
+ sectionCompletion: {
1047
+ totalSections: number;
1048
+ sectionsWithAttendance: number;
1049
+ sections: {
1050
+ studentCount: number;
1051
+ sectionId: string;
1052
+ sectionNumber: string;
1053
+ courseName: string;
1054
+ recordedCount: number;
1055
+ isComplete: boolean;
1056
+ }[];
1057
+ };
1058
+ trend: {
1059
+ date: string;
1060
+ schoolId: string;
1061
+ present: number;
1062
+ absent: number;
1063
+ late: number;
1064
+ excused: number;
1065
+ attendanceRate: number;
1066
+ totalStudents: number;
1067
+ halfDay: number;
1068
+ remote?: number | undefined;
1069
+ totalRecorded?: number | undefined;
1070
+ byGradeLevel?: Record<string, {
1071
+ total: number;
1072
+ present: number;
1073
+ absent: number;
1074
+ rate: number;
1075
+ }> | undefined;
1076
+ }[];
1077
+ periodAverages: {
1078
+ last7Days: number;
1079
+ last30Days: number;
1080
+ academicYear: number;
1081
+ };
1082
+ atRiskStudents: {
1083
+ totalDays: number;
1084
+ studentId: string;
1085
+ attendanceRate: number;
1086
+ studentName: string;
1087
+ absentDays: number;
1088
+ trend: "improving" | "declining" | "stable";
1089
+ gradeLevel?: string | undefined;
1090
+ }[];
1091
+ totalAtRiskCount: number;
1092
+ absenceBreakdown: {
1093
+ late: number;
1094
+ excused: number;
1095
+ remote: number;
1096
+ halfDay: number;
1097
+ unexcused: number;
1098
+ };
1099
+ dayOfWeekPattern: Record<string, {
1100
+ avgRate: number;
1101
+ avgAbsent: number;
1102
+ }>;
1103
+ }, {
1104
+ todaySummary: {
1105
+ date: string;
1106
+ schoolId: string;
1107
+ present: number;
1108
+ absent: number;
1109
+ late: number;
1110
+ excused: number;
1111
+ attendanceRate: number;
1112
+ totalStudents: number;
1113
+ totalRecorded: number;
1114
+ halfDay: number;
1115
+ remote?: number | undefined;
1116
+ byGradeLevel?: Record<string, {
1117
+ total: number;
1118
+ present: number;
1119
+ absent: number;
1120
+ rate: number;
1121
+ }> | undefined;
1122
+ };
1123
+ sectionCompletion: {
1124
+ totalSections: number;
1125
+ sectionsWithAttendance: number;
1126
+ sections: {
1127
+ studentCount: number;
1128
+ sectionId: string;
1129
+ sectionNumber: string;
1130
+ courseName: string;
1131
+ recordedCount: number;
1132
+ isComplete: boolean;
1133
+ }[];
1134
+ };
1135
+ trend: {
1136
+ date: string;
1137
+ schoolId: string;
1138
+ present: number;
1139
+ absent: number;
1140
+ late: number;
1141
+ excused: number;
1142
+ attendanceRate: number;
1143
+ totalStudents: number;
1144
+ halfDay: number;
1145
+ remote?: number | undefined;
1146
+ totalRecorded?: number | undefined;
1147
+ byGradeLevel?: Record<string, {
1148
+ total: number;
1149
+ present: number;
1150
+ absent: number;
1151
+ rate: number;
1152
+ }> | undefined;
1153
+ }[];
1154
+ periodAverages: {
1155
+ last7Days: number;
1156
+ last30Days: number;
1157
+ academicYear: number;
1158
+ };
1159
+ atRiskStudents: {
1160
+ totalDays: number;
1161
+ studentId: string;
1162
+ attendanceRate: number;
1163
+ studentName: string;
1164
+ absentDays: number;
1165
+ trend: "improving" | "declining" | "stable";
1166
+ gradeLevel?: string | undefined;
1167
+ }[];
1168
+ totalAtRiskCount: number;
1169
+ absenceBreakdown: {
1170
+ late: number;
1171
+ excused: number;
1172
+ remote: number;
1173
+ halfDay: number;
1174
+ unexcused: number;
1175
+ };
1176
+ dayOfWeekPattern: Record<string, {
1177
+ avgRate: number;
1178
+ avgAbsent: number;
1179
+ }>;
1180
+ }>;
1181
+ export type AttendanceOverviewResponseDto = z.infer<typeof attendanceOverviewResponseSchema>;
762
1182
  //# sourceMappingURL=attendance.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attendance.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/academics/attendance.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attendance.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/academics/attendance.schema.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Zod schemas for attendance management DTOs.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.dailyAttendanceReportSchema = exports.studentAttendanceSummarySchema = exports.dailyAttendanceSummarySchema = exports.bulkAttendanceResponseSchema = exports.attendanceSummarySchema = exports.attendanceFilterSchema = exports.bulkAttendanceSchema = exports.bulkAttendanceRecordSchema = exports.attendanceListResponseSchema = exports.attendanceResponseSchema = exports.updateAttendanceSchema = exports.createAttendanceSchema = exports.excuseTypeSchema = exports.attendanceTypeSchema = exports.attendanceStatusSchema = void 0;
8
+ exports.attendanceOverviewResponseSchema = exports.dailyAttendanceReportSchema = exports.studentAttendanceSummarySchema = exports.dailyAttendanceSummarySchema = exports.bulkAttendanceResponseSchema = exports.attendanceSummarySchema = exports.attendanceFilterSchema = exports.bulkAttendanceSchema = exports.bulkAttendanceRecordSchema = exports.attendanceListResponseSchema = exports.attendanceResponseSchema = exports.updateAttendanceSchema = exports.createAttendanceSchema = exports.excuseTypeSchema = exports.attendanceTypeSchema = exports.attendanceStatusSchema = void 0;
9
9
  const zod_1 = require("zod");
10
10
  const common_1 = require("../common");
11
11
  // ============================================
@@ -126,6 +126,7 @@ exports.attendanceListResponseSchema = (0, common_1.createPaginatedResponseSchem
126
126
  // ============================================
127
127
  exports.bulkAttendanceRecordSchema = zod_1.z.object({
128
128
  studentId: zod_1.z.string().uuid(),
129
+ studentName: zod_1.z.string().optional(),
129
130
  status: exports.attendanceStatusSchema,
130
131
  checkInTime: common_1.timeSchema.optional(),
131
132
  minutesLate: zod_1.z.number().int().min(0).max(480).optional(),
@@ -195,11 +196,13 @@ exports.dailyAttendanceSummarySchema = zod_1.z.object({
195
196
  date: common_1.dateSchema,
196
197
  schoolId: zod_1.z.string().uuid(),
197
198
  totalStudents: zod_1.z.number().int().min(0),
199
+ totalRecorded: zod_1.z.number().int().min(0).optional(),
198
200
  present: zod_1.z.number().int().min(0),
199
201
  absent: zod_1.z.number().int().min(0),
200
202
  late: zod_1.z.number().int().min(0),
201
203
  excused: zod_1.z.number().int().min(0),
202
204
  halfDay: zod_1.z.number().int().min(0),
205
+ remote: zod_1.z.number().int().min(0).optional(),
203
206
  attendanceRate: zod_1.z.number().min(0).max(100),
204
207
  byGradeLevel: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
205
208
  total: zod_1.z.number().int().min(0),
@@ -247,4 +250,52 @@ exports.dailyAttendanceReportSchema = zod_1.z.object({
247
250
  rate: zod_1.z.number().min(0).max(100),
248
251
  })).optional(),
249
252
  });
253
+ // ============================================
254
+ // Attendance Overview Response Schema (Task 1.9)
255
+ // ============================================
256
+ exports.attendanceOverviewResponseSchema = zod_1.z.object({
257
+ todaySummary: exports.dailyAttendanceSummarySchema.extend({
258
+ totalRecorded: zod_1.z.number().int().min(0),
259
+ remote: zod_1.z.number().int().min(0).optional(),
260
+ }),
261
+ sectionCompletion: zod_1.z.object({
262
+ totalSections: zod_1.z.number().int().min(0),
263
+ sectionsWithAttendance: zod_1.z.number().int().min(0),
264
+ sections: zod_1.z.array(zod_1.z.object({
265
+ sectionId: zod_1.z.string(),
266
+ sectionNumber: zod_1.z.string(),
267
+ courseName: zod_1.z.string(),
268
+ studentCount: zod_1.z.number().int().min(0),
269
+ recordedCount: zod_1.z.number().int().min(0),
270
+ isComplete: zod_1.z.boolean(),
271
+ })),
272
+ }),
273
+ trend: zod_1.z.array(exports.dailyAttendanceSummarySchema),
274
+ periodAverages: zod_1.z.object({
275
+ last7Days: zod_1.z.number().min(0).max(100),
276
+ last30Days: zod_1.z.number().min(0).max(100),
277
+ academicYear: zod_1.z.number().min(0).max(100),
278
+ }),
279
+ atRiskStudents: zod_1.z.array(zod_1.z.object({
280
+ studentId: zod_1.z.string(),
281
+ studentName: zod_1.z.string(),
282
+ gradeLevel: zod_1.z.string().optional(),
283
+ attendanceRate: zod_1.z.number().min(0).max(100),
284
+ totalDays: zod_1.z.number().int().min(0),
285
+ absentDays: zod_1.z.number().int().min(0),
286
+ trend: zod_1.z.enum(['improving', 'declining', 'stable']),
287
+ })),
288
+ totalAtRiskCount: zod_1.z.number().int().min(0),
289
+ absenceBreakdown: zod_1.z.object({
290
+ unexcused: zod_1.z.number().int().min(0),
291
+ excused: zod_1.z.number().int().min(0),
292
+ late: zod_1.z.number().int().min(0),
293
+ halfDay: zod_1.z.number().int().min(0),
294
+ remote: zod_1.z.number().int().min(0),
295
+ }),
296
+ dayOfWeekPattern: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
297
+ avgRate: zod_1.z.number().min(0).max(100),
298
+ avgAbsent: zod_1.z.number().min(0),
299
+ })),
300
+ });
250
301
  //# sourceMappingURL=attendance.schema.js.map