diff --git a/backend/src/main/java/com/softspm/webinar/interaction/InteractionBroadcaster.java b/backend/src/main/java/com/softspm/webinar/interaction/InteractionBroadcaster.java index 9fd2dcf..13e8aee 100644 --- a/backend/src/main/java/com/softspm/webinar/interaction/InteractionBroadcaster.java +++ b/backend/src/main/java/com/softspm/webinar/interaction/InteractionBroadcaster.java @@ -114,7 +114,18 @@ public class InteractionBroadcaster { * i nie pokazywal przy nich przyciskow wyciszenia ani blokady. */ public void moderation(Long webinarId, String kind, ModeratorInteractionView interaction) { - messaging.convertAndSend(moderationTopic(webinarId), new Event(kind, interaction)); + messaging.convertAndSend(moderationTopic(webinarId), new ModeratedInteractionEvent(kind, interaction)); + } + + /** + * Zdarzenie na temacie MODERACJI, wylacznie dla panelu prowadzacego. + * + * Osobny rekord od `Event`, bo niesie inny widok: pelny, z identyfikatorem + * zapisu autora i jego stanem wyciszenia. Jeden wspolny rekord dla obu + * tematow oznaczalby, ze zmiana typu w jednym miejscu cicho przepuszcza + * dane moderacji na strumien publiczny albo odwrotnie. + */ + public record ModeratedInteractionEvent(String kind, ModeratorInteractionView payload) { } /** @@ -163,7 +174,11 @@ public class InteractionBroadcaster { } /** Koperta zdarzenia. `kind` mowi odbiorcy, co zrobic z `payload`. */ - public record Event(String kind, ModeratorInteractionView payload) { + /** + * Zdarzenie na temacie PUBLICZNYM: czat i pytania widoczne dla wszystkich + * obecnych. Niesie widok bez identyfikatora zapisu i bez adresu e-mail. + */ + public record Event(String kind, InteractionView payload) { } /** Koperta zdarzenia o zadaniu. */