using SameBeat.Application.DTO; namespace SameBeat.Application.Interfejsy; /// /// Waska furtka do SignalR dla warstwy Infrastructure -- Hub (StanImprezyHub) zyje w projekcie Api, /// a Api referencjonuje Infrastructure (nie odwrotnie), wiec SerwisTimeraMikrofonu (Infrastructure/Audio, /// dziala w tle, poza kontekstem HTTP/kontrolera) nie moze wprost wstrzyknac IHubContext<StanImprezyHub>. /// Implementacja (w Api) jest cienkim adapterem na IHubContext -- kontrolery HTTP nadal rozglaszaja /// bezposrednio przez IHubContext, tak jak dotychczas (HostStageController, HostMusicController itd.); /// ten interfejs sluzy WYLACZNIE tlu, ktore nie ma wlasnego kontrolera. /// public interface IRozgloszenieZdarzenImprezy { /// Rozglasza "MikrofonOdebrany" do wszystkich klientow -- po tym, jak autorytatywny timer wykryl uplyw czasu. Task MikrofonOdebranyAsync(StanMikrofonuDto stan, CancellationToken token = default); }