package com.example.godeye.models

enum class ConnectionState {
    DISCONNECTED,
    CONNECTING,
    CONNECTED,
    RECONNECTING,
    ERROR
}

data class CameraResponse(
    val sessionId: String,
    val accepted: Boolean,
    val reason: String? = null,
    val streamUrl: String? = null
)

data class SessionInfo(
    val sessionId: String,
    val deviceId: String,
    val operatorId: String,
    val cameraType: String,
    val status: String,
    val createdAt: String,
    val acceptedAt: String? = null,
    val endedAt: String? = null
)

data class CameraSwitchRequest(
    val sessionId: String,
    val cameraType: String
)

object SocketEvents {
    const val REGISTER_ANDROID = "register:android"
    const val REGISTER_SUCCESS = "register:success"
    const val REGISTER_ERROR = "register:error"
    const val CAMERA_REQUEST = "camera:request"
    const val CAMERA_RESPONSE = "camera:response"
    const val CAMERA_SWITCH = "camera:switch"
    const val CAMERA_DISCONNECT = "camera:disconnect"
    const val SESSION_CREATED = "session:created"
    const val SESSION_ACCEPTED = "session:accepted"
    const val SESSION_REJECTED = "session:rejected"
    const val SESSION_ENDED = "session:ended"
    const val SERVER_HELLO = "server:hello"
    const val WEBRTC_OFFER = "webrtc:offer"
    const val WEBRTC_ANSWER = "webrtc:answer"
    const val WEBRTC_ICE_CANDIDATE = "webrtc:ice-candidate"
    const val DEVICE_CONNECTED = "device:connected"
    const val DEVICE_DISCONNECTED = "device:disconnected"
    const val HEARTBEAT = "heartbeat"
    const val HEARTBEAT_ACK = "heartbeat:ack"
    const val ERROR = "error"
}

// DeviceInfo перенесен в отдельный файл DeviceInfo.kt
