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