using System; using System.Text.Json.Serialization; using Volo.Abp.Domain.Entities.Auditing; namespace Kurs.Platform.Entities; public class ClassroomAttandance : FullAuditedEntity { public Guid SessionId { get; set; } public Guid? StudentId { get; set; } public string StudentName { get; set; } public DateTime JoinTime { get; set; } public DateTime? LeaveTime { get; set; } public int TotalDurationMinutes { get; set; } [JsonIgnore] public virtual Classroom Session { get; set; } protected ClassroomAttandance() { } public ClassroomAttandance( Guid id, Guid sessionId, Guid? studentId, string studentName, DateTime joinTime ) : base(id) { SessionId = sessionId; StudentId = studentId; StudentName = studentName; JoinTime = joinTime; TotalDurationMinutes = 0; } public void CalculateDuration() { if (LeaveTime.HasValue) { var duration = LeaveTime.Value - JoinTime; TotalDurationMinutes = (int)duration.TotalMinutes; } else { var duration = DateTime.UtcNow - JoinTime; TotalDurationMinutes = (int)duration.TotalMinutes; } } }