package com.suno.android.common_networking.sse /** * Generic sealed class for real-time SSE events. * * Provides a standard pattern for all SSE-based real-time clients: * - Connected: Connection established * - Disconnected: Connection closed * - Error: Connection error occurred * - Data events: Specific to each implementation * * @param T The type of data payload for data events */ sealed class RealtimeEvent { /** * Connection established successfully. */ data object Connected : RealtimeEvent() /** * Connection was disconnected. */ data object Disconnected : RealtimeEvent() /** * An error occurred. * * @param throwable The error that occurred */ data class Error( val throwable: Throwable, ) : RealtimeEvent() /** * Received data update. * * @param data The data payload */ data class Data( val data: T, ) : RealtimeEvent() }