namespace CollabBLL; public static class CollabConstants { public static readonly string[] CursorColors = [ "#E53E3E", "#3182CE", "#38A169", "#805AD5", "#DD6B20", "#D69E2E", "#00B5D8", "#D53F8C", "#319795", "#744210" ]; public static class Roles { public const string Host = "Host"; public const string Presenter = "Presenter"; public const string CoEditor = "CoEditor"; public const string Viewer = "Viewer"; } public static class Status { public const string Pending = "Pending"; public const string Active = "Active"; public const string Paused = "Paused"; public const string Ended = "Ended"; public const string Abandoned = "Abandoned"; } public static class EventTypes { public const string SessionCreated = "SessionCreated"; public const string SessionStarted = "SessionStarted"; public const string SessionPaused = "SessionPaused"; public const string SessionResumed = "SessionResumed"; public const string SessionEnded = "SessionEnded"; public const string ParticipantJoined = "ParticipantJoined"; public const string ParticipantLeft = "ParticipantLeft"; public const string ControlGranted = "ControlGranted"; public const string ControlRevoked = "ControlRevoked"; public const string ControlRequested = "ControlRequested"; public const string InviteSent = "InviteSent"; public const string InviteAccepted = "InviteAccepted"; public const string InviteDeclined = "InviteDeclined"; } public static class CacheTypes { public const string Session = "CollabSession"; public const string SessionList = "CollabSessionList"; public const string Invite = "CollabInvite"; public const string Config = "CollabConfig"; } /// Generates a unique 2-letter + 4-digit session code e.g. "XK-4291". public static string GenerateSessionCode() { int n = Random.Shared.Next(0, 676); int d = Random.Shared.Next(1000, 9999); char a = (char)('A' + n / 26); char b = (char)('A' + n % 26); return $"{a}{b}-{d}"; } }