package com.suno.android.common_networking.sse /** * Represents events from a Server-Sent Events stream. */ sealed class SseEvent { /** * Connection successfully established. */ data object Connected : SseEvent() /** * Connection closed (stream ended or timeout). */ data object Disconnected : SseEvent() /** * Message received from SSE stream. * * @param data The accumulated data from all "data:" lines, joined with newlines * @param id The event ID from "id:" field, used for reconnection */ data class Message( val data: String, val id: String? = null, ) : SseEvent() /** * Error occurred during connection or parsing. */ data class Error( val throwable: Throwable, ) : SseEvent() }