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);
}