@aibrains/shared-types 0.8.0 → 0.9.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.
@@ -1429,8 +1429,8 @@ export declare const studentSubmissionSchema: z.ZodObject<{
1429
1429
  submittedAt: z.ZodOptional<z.ZodString>;
1430
1430
  attemptNumber: z.ZodDefault<z.ZodNumber>;
1431
1431
  }, "strip", z.ZodTypeAny, {
1432
- assignmentId: string;
1433
1432
  studentId: string;
1433
+ assignmentId: string;
1434
1434
  attemptNumber: number;
1435
1435
  submittedAt?: string | undefined;
1436
1436
  attachments?: {
@@ -1444,8 +1444,8 @@ export declare const studentSubmissionSchema: z.ZodObject<{
1444
1444
  content?: string | undefined;
1445
1445
  externalUrl?: string | undefined;
1446
1446
  }, {
1447
- assignmentId: string;
1448
1447
  studentId: string;
1448
+ assignmentId: string;
1449
1449
  submittedAt?: string | undefined;
1450
1450
  attachments?: {
1451
1451
  name: string;
@@ -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;
@@ -479,8 +487,8 @@ export declare const attendanceFilterSchema: z.ZodObject<{
479
487
  }, "strip", z.ZodTypeAny, {
480
488
  status?: "half_day" | "present" | "absent" | "late" | "excused" | "tardy" | "early_departure" | "remote" | undefined;
481
489
  schoolId?: string | undefined;
482
- academicYearId?: string | undefined;
483
490
  studentId?: string | undefined;
491
+ academicYearId?: string | undefined;
484
492
  gradeLevel?: string | undefined;
485
493
  classroomId?: string | undefined;
486
494
  attendanceType?: "daily" | "period" | "event" | undefined;
@@ -489,8 +497,8 @@ export declare const attendanceFilterSchema: z.ZodObject<{
489
497
  }, {
490
498
  status?: "half_day" | "present" | "absent" | "late" | "excused" | "tardy" | "early_departure" | "remote" | undefined;
491
499
  schoolId?: string | undefined;
492
- academicYearId?: string | undefined;
493
500
  studentId?: string | undefined;
501
+ academicYearId?: string | undefined;
494
502
  gradeLevel?: string | undefined;
495
503
  classroomId?: string | undefined;
496
504
  attendanceType?: "daily" | "period" | "event" | undefined;
@@ -518,8 +526,8 @@ export declare const attendanceSummarySchema: z.ZodObject<{
518
526
  to: string;
519
527
  }>;
520
528
  }, "strip", z.ZodTypeAny, {
521
- totalDays: number;
522
529
  studentId: string;
530
+ totalDays: number;
523
531
  attendanceRate: number;
524
532
  studentName: string;
525
533
  presentDays: number;
@@ -531,8 +539,8 @@ export declare const attendanceSummarySchema: z.ZodObject<{
531
539
  to: string;
532
540
  };
533
541
  }, {
534
- totalDays: number;
535
542
  studentId: string;
543
+ totalDays: number;
536
544
  attendanceRate: number;
537
545
  studentName: string;
538
546
  presentDays: number;
@@ -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;
@@ -670,8 +684,8 @@ export declare const studentAttendanceSummarySchema: z.ZodObject<{
670
684
  }>;
671
685
  }, "strip", z.ZodTypeAny, {
672
686
  schoolId: string;
673
- totalDays: number;
674
687
  studentId: string;
688
+ totalDays: number;
675
689
  present: number;
676
690
  absent: number;
677
691
  late: number;
@@ -686,8 +700,8 @@ export declare const studentAttendanceSummarySchema: z.ZodObject<{
686
700
  academicYearId?: string | undefined;
687
701
  }, {
688
702
  schoolId: string;
689
- totalDays: number;
690
703
  studentId: string;
704
+ totalDays: number;
691
705
  present: number;
692
706
  absent: number;
693
707
  late: 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
+ studentId: string;
981
+ totalDays: number;
982
+ attendanceRate: number;
983
+ studentName: string;
984
+ absentDays: number;
985
+ trend: "improving" | "declining" | "stable";
986
+ gradeLevel?: string | undefined;
987
+ }, {
988
+ studentId: string;
989
+ totalDays: number;
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
+ studentId: string;
1084
+ totalDays: number;
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
+ studentId: string;
1161
+ totalDays: number;
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":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,sBAAsB,uGASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB,yCAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB,kHAQ3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMzE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CnC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAM7E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0D,CAAC;AACpG,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMrF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAMjF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMrE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMzE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAM3E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWvC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMrF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBvC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAMrF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBzC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAMzF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAMnF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4C3C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -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