namespace CollabDAL.DTO.CollabSession; public class CreateSessionSaveDTO { public string Title { get; set; } = string.Empty; public string SessionType { get; set; } = string.Empty; public string Mode { get; set; } = string.Empty; public string? ContextModuleCode { get; set; } public string? ContextRecordId { get; set; } public string? ContextRecordLabel { get; set; } public string? ContextRouteUrl { get; set; } public DateTime? ScheduledAt { get; set; } public int? ScheduledDurationMinutes { get; set; } public int? MaxParticipants { get; set; } } public class UpdateSessionStatusSaveDTO { public Guid SessionId { get; set; } public string NewStatus { get; set; } = string.Empty; // Active|Paused|Ended|Abandoned } public class InviteUsersSaveDTO { public Guid SessionId { get; set; } public List UserIds { get; set; } = []; public string OfferedRole { get; set; } = string.Empty; public int? ExpiryMinutes { get; set; } } public class CreateLinkInviteSaveDTO { public Guid SessionId { get; set; } public string OfferedRole { get; set; } = string.Empty; public int? ExpiryMinutes { get; set; } } public class GrantControlSaveDTO { public Guid SessionId { get; set; } public string TargetUserId { get; set; } = string.Empty; } public class UpdateParticipantConnectionSaveDTO { public Guid SessionId { get; set; } public string UserId { get; set; } = string.Empty; public string? ConnectionId { get; set; } public bool IsActive { get; set; } }