using SurrealDb.Net.Models; namespace RelayServer.Models; [Flags] public enum PermissionFlags { None = 0, ReadMessages = 1 << 0, SendMessages = 1 << 1, ManageMessages = 1 << 2, // Edit / delete others' messages ManageChannels = 1 << 3, // Create channels (umbrella manage permission) ManageMembers = 1 << 4, // Kick / ban members Administrator = 1 << 5, // All permissions, bypasses channel overrides ViewChannel = 1 << 6, // "Visibility" — can see the channel at all Speak = 1 << 7, // Can transmit in a voice channel EditChannel = 1 << 8, // Rename / reconfigure a channel DeleteChannel = 1 << 9 // Delete a channel } public class Roles : Record { public required string Name { get; set; } public required PermissionFlags Permissions { get; set; } public required DateTime CreatedAt { get; set; } public int Priority { get; set; } }