33 lines
930 B
Rust
33 lines
930 B
Rust
|
|
use serde::{Deserialize, Serialize};
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Deserialize, Serialize)]
|
||
|
|
pub struct ConfirmActionRequest {
|
||
|
|
pub conversation_id: String,
|
||
|
|
pub action: String,
|
||
|
|
pub confirmed: bool,
|
||
|
|
#[serde(default)]
|
||
|
|
pub fields: serde_json::Value,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize)]
|
||
|
|
pub struct ConfirmActionResponse {
|
||
|
|
pub success: bool,
|
||
|
|
pub message: String,
|
||
|
|
pub action: String,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub record_id: Option<String>,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub ui_events: Option<Vec<UiEvent>>,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||
|
|
pub struct UiEvent {
|
||
|
|
#[serde(rename = "type")]
|
||
|
|
pub event_type: String,
|
||
|
|
pub target: String,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub record_id: Option<String>,
|
||
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||
|
|
pub fields: Option<serde_json::Value>,
|
||
|
|
}
|