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; }
}