using System.Text.Json;
using RelayShared.Rtc;
using WebSocketSharp.Server;

namespace RelayServer.Services.Rtc;

public static class RtcNotificationService
{
    public static WebSocketServer? Server { get; set; }

    public static void BroadcastToChannel(RtcNotificationMessage message)
    {
        if (Server is null)
            return;

        var host = Server.WebSocketServices["/"];
        if (host is null)
            return;

        var json = JsonSerializer.Serialize(message);
        var sessionIds = RtcChannelPresenceService.GetSessionsInChannel(message.ChannelId);

        foreach (var sessionId in sessionIds)
        {
            host.Sessions.SendTo(json, sessionId);
        }
    }
}