using SurrealDb.Net.Models; namespace RelayServer.Models; /// /// Surreal record for the `server_members` table. Membership list. /// Drives DeliverToServerMembers (the fan-out target list for every chat message) and the /// authoritative ownership flag for PermissionService. /// public class ServerMembers : Record { /// "users:keeper317" — references the Core users table by name convention. public required string UserId { get; set; } /// When the user was added to this server. public required DateTime JoinedAt { get; set; } /// /// Authoritative owner flag. Owner gets unconditional Administrator via /// PermissionService.IsServerOwnerAsync, independent of role assignments. /// public bool IsOwner { get; set; } }