using SameBeat.Domain.Enumy; namespace SameBeat.Application.Interfejsy; public interface ISerwisTokenowLiveKit { /// /// Generuje token dostepu LiveKit dla danej tozsamosci i roli, przypisany do konkretnego pokoju. /// Uprawnienia (canPublish/canSubscribe) sa wyliczane z roli wewnatrz implementacji, wiec caller /// nie moze ich podbic. Pokoj przekazuje caller (nie ma jednego "domyslnego" pokoju) -- widzowie /// i poczekalnia to celowo dwa osobne pokoje LiveKit, zeby anonimowy widz nie mogl podejrzec /// kamery uczestnika, ktorego host jeszcze nie zaakceptowal. /// /// /// "identity" to techniczna tozsamosc LiveKit (dla uczestnikow poczekalni -- losowy, nieznaczacy /// string, NIE nick -- patrz UczestnikOczekujacy.LiveKitIdentity). "nazwaWyswietlana" to nick /// pokazywany w LiveKit jako claim "name" -- po nim frontend dopasowuje strumien wideo do slotu /// na scenie, bo identity celowo nie jest widzom ani hostowi ujawniane. /// string WygenerujToken(string identity, string nazwaWyswietlana, RolaUzytkownika rola, string nazwaPokoju); }