use serde_json::Value;
#[derive(Debug, Clone)]
pub enum CoreCommand {
ExecuteApi(ApiRequest),
ConnectWebSocket { device_id: String, url: String },
DisconnectWebSocket { device_id: String },
Shutdown,
}
#[derive(Debug, Clone)]
pub struct ApiRequest {
pub label: String,
pub device_id: Option<String>,
pub method: HttpMethod,
pub base_url: String,
pub path: String,
pub body: Option<Value>,
}
#[derive(Debug, Clone)]
pub struct ApiResponseEvent {
pub label: String,
pub device_id: Option<String>,
pub success: bool,
pub status: u16,
pub message: String,
pub data: Option<Value>,
}
#[derive(Debug, Clone)]
pub enum CoreEvent {
ApiResponse(ApiResponseEvent),
WebSocketConnected { device_id: String },
WebSocketDisconnected { device_id: String, reason: String },
WebSocketFrame { device_id: String, bytes: Vec<u8> },
Log(String),
}
#[derive(Debug, Clone)]
pub enum HttpMethod {
Get,
Post,
}