use crate::gen::task_automation::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TaskEvent {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<uuid::Uuid>,
#[serde(rename = "queue_id", skip_serializing_if = "Option::is_none")]
pub queue_id: Option<String>,
#[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(rename = "customer_id", skip_serializing_if = "Option::is_none")]
pub customer_id: Option<String>,
#[serde(rename = "agent_id", skip_serializing_if = "Option::is_none")]
pub agent_id: Option<String>,
#[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
pub created_at: Option<i64>,
#[serde(rename = "body")]
pub body: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "state", skip_serializing_if = "Option::is_none")]
pub state: Option<models::TaskState>,
#[serde(rename = "actions", skip_serializing_if = "Option::is_none")]
pub actions: Option<Box<models::Actions>>,
#[serde(rename = "task_completion", skip_serializing_if = "Option::is_none")]
pub task_completion: Option<Box<models::TaskCompletionSettings>>,
#[serde(rename = "selection_settings", skip_serializing_if = "Option::is_none")]
pub selection_settings: Option<Box<models::TaskSelectionSettings>>,
#[serde(rename = "scheduled_at", skip_serializing_if = "Option::is_none")]
pub scheduled_at: Option<i64>,
#[serde(rename = "context", skip_serializing_if = "Option::is_none")]
pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "event_id", skip_serializing_if = "Option::is_none")]
pub event_id: Option<uuid::Uuid>,
#[serde(rename = "has_error", skip_serializing_if = "Option::is_none")]
pub has_error: Option<bool>,
#[serde(rename = "event_start", skip_serializing_if = "Option::is_none")]
pub event_start: Option<i64>,
#[serde(rename = "event_end", skip_serializing_if = "Option::is_none")]
pub event_end: Option<i64>,
}
impl TaskEvent {
pub fn new(
body: std::collections::HashMap<String, serde_json::Value>,
r#type: String,
) -> TaskEvent {
TaskEvent {
id: None,
queue_id: None,
session_id: None,
customer_id: None,
agent_id: None,
created_at: None,
body,
r#type,
state: None,
actions: None,
task_completion: None,
selection_settings: None,
scheduled_at: None,
context: None,
event_id: None,
has_error: None,
event_start: None,
event_end: None,
}
}
}