using System.Text.Json; using RadicadeServer.RecNet.Enums.Messages; namespace RadicadeServer.RecNet.Messages; public sealed class RoomInviteDetails { public long InviteId { get; set; } public string Name { get; set; } = string.Empty; public int InviteMode { get; set; } public long RoomInstanceId { get; set; } public static long? GetInstanceId(Message message) { if (message.Type == MessageType.GameInvite) return long.TryParse(message.Data, out var id) && id > 0 ? id : null; if (message.Type != MessageType.GameInviteV2) return null; try { var details = JsonSerializer.Deserialize(message.Data); return details?.RoomInstanceId > 0 ? details.RoomInstanceId : null; } catch (JsonException) { return null; } } }