using SameBeat.Application.DTO; using SameBeat.Domain.Encje; namespace SameBeat.Application.Interfejsy; public interface IRepozytoriumSceny { /// Wiersz slotu (zajety albo wolny) dla danego wydarzenia i numeru, jesli kiedykolwiek zostal utworzony. Task ZnajdzPoNumerzeAsync(Guid wydarzenieId, int numerSlotu, CancellationToken token = default); /// /// Slot, ktory aktualnie zajmuje dany uczestnik (jesli w ogole) -- uzywane przez SerwisMikrofonu, /// zeby dolaczyc numer slotu do StanMikrofonuDto bez ujawniania UczestnikOczekujacyId na zewnatrz. /// Task ZnajdzPoUczestnikuAsync(Guid wydarzenieId, Guid uczestnikOczekujacyId, CancellationToken token = default); /// Wszystkie AKTUALNIE zajete sloty danego wydarzenia -- do korekty po zmianie ukladu. Task> PobierzZajeteDlaWydarzeniaAsync(Guid wydarzenieId, CancellationToken token = default); /// /// Zajete sloty danego wydarzenia z nickiem uczestnika, gotowe do publicznego zwrotu (SignalR, /// GET /api/events/current, GET /api/host/stage) -- BEZ UczestnikOczekujacyId, patrz SlotScenyDto. /// Task> PobierzZajeteZNickamiAsync(Guid wydarzenieId, CancellationToken token = default); void Dodaj(SlotSceny slot); }