using System; using Volo.Abp.Domain.Entities.Auditing; namespace Kurs.Platform.Entities; public class ClassroomParticipant : FullAuditedEntity { public Guid SessionId { get; set; } public Guid? UserId { get; set; } public string UserName { get; set; } public bool IsTeacher { get; set; } public bool IsAudioMuted { get; set; } = false; public bool IsVideoMuted { get; set; } = false; public bool IsHandRaised { get; set; } = false; public DateTime JoinTime { get; set; } public string ConnectionId { get; set; } // Navigation properties public virtual Classroom Session { get; set; } protected ClassroomParticipant() { } public ClassroomParticipant( Guid id, Guid sessionId, Guid? userId, string userName, bool isTeacher, bool isAudioMuted, bool isVideoMuted, bool isHandRaised ) : base(id) { SessionId = sessionId; UserId = userId; UserName = userName; IsTeacher = isTeacher; IsAudioMuted = isAudioMuted; IsVideoMuted = isVideoMuted; IsHandRaised = isHandRaised; JoinTime = DateTime.UtcNow; } public void MuteAudio() { IsAudioMuted = true; } public void UnmuteAudio() { IsAudioMuted = false; } public void MuteVideo() { IsVideoMuted = true; } public void UnmuteVideo() { IsVideoMuted = false; } public void UpdateConnectionId(string connectionId) { ConnectionId = connectionId; } }