using SameBeat.Application.DTO;
using SameBeat.Application.Komendy;
namespace SameBeat.Application.Interfejsy;
public interface ISerwisPoczekalni
{
/// Dolacza nowego uczestnika do poczekalni biezacego wydarzenia i od razu wydaje mu token LiveKit (kamera, bez mikrofonu).
Task> DolaczAsync(DolaczKomenda komenda, CancellationToken token = default);
/// Lista oczekujacych (Status=Oczekuje) dla biezacego wydarzenia. Pusta lista, gdy brak wydarzenia.
Task>> PobierzOczekujacychAsync(CancellationToken token = default);
Task OdrzucAsync(Guid uczestnikId, CancellationToken token = default);
Task ZbanujAsync(Guid uczestnikId, CancellationToken token = default);
///
/// Token LiveKit dla hosta do podgladu pokoju POCZEKALNI (nie glownej sceny) -- tylko subskrypcja,
/// zeby host mogl zobaczyc kamery oczekujacych zanim kogokolwiek zaakceptuje albo odrzuci.
///
WynikOperacji WygenerujTokenPodgladuHosta(string nickHosta);
}