Implement comprehensive academic statistics and grade analysis workflows

This commit is contained in:
biss committed 2026-08-18 11:05:03 +08:00
1 parent 370a82d4d4
commit f677cf8dca
24 files changed
+8703 -42

No files matched your search

@@ -0,0 +1,57 @@
using Jiaowu.Api.Domain.Common;
using Jiaowu.Api.Domain.Identity;
namespace Jiaowu.Api.Domain.Academic;
public sealed class ClassroomEquipment : EntityBase
{
public Guid ClassroomId { get; set; }
public Classroom? Classroom { get; set; }
public required string Name { get; set; }
public ClassroomEquipmentCategory Category { get; set; }
public bool IsAvailable { get; set; } = true;
public string? Notes { get; set; }
}
public enum ClassroomEquipmentCategory
{
Multimedia = 1,
Furniture = 2,
Utilities = 3,
AirConditioning = 4,
Other = 5
}
public sealed class ClassroomRepairTicket : EntityBase
{
public Guid ClassroomId { get; set; }
public Classroom? Classroom { get; set; }
public Guid? ClassroomEquipmentId { get; set; }
public ClassroomEquipment? ClassroomEquipment { get; set; }
public ClassroomEquipmentCategory Category { get; set; }
public required string FaultItem { get; set; }
public required string Description { get; set; }
public required string ReporterName { get; set; }
public required string ReporterContact { get; set; }
public Guid? ReporterUserId { get; set; }
public ApplicationUser? ReporterUser { get; set; }
public ClassroomRepairTicketStatus Status { get; set; } = ClassroomRepairTicketStatus.Submitted;
public Guid? AssignedToUserId { get; set; }
public ApplicationUser? AssignedToUser { get; set; }
public Guid? AssignedByUserId { get; set; }
public ApplicationUser? AssignedByUser { get; set; }
public DateTime? AssignedAt { get; set; }
public DateTime? StartedAt { get; set; }
public DateTime? CompletedAt { get; set; }
public string? RepairResult { get; set; }
public DateTime? InitialTeacherNotifiedAt { get; set; }
public DateTime? EscalationTeacherNotifiedAt { get; set; }
}
public enum ClassroomRepairTicketStatus
{
Submitted = 1,
Assigned = 2,
InProgress = 3,
Completed = 4
}
@@ -50,6 +50,14 @@ public sealed class Classroom : CatalogEntity
public TeachingVenueNature TeachingVenueNature { get; set; } =
TeachingVenueNature.GeneralClassroom;
public string? Equipment { get; set; }
public ClassroomAvailabilityStatus AvailabilityStatus { get; set; } =
ClassroomAvailabilityStatus.Normal;
}
public enum ClassroomAvailabilityStatus
{
Normal = 1,
UnderRepair = 2
}
[Flags]