use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Query {
#[serde(rename = "queryId")]
pub query_id: String,
#[serde(rename = "query")]
pub query: String,
#[serde(rename = "createdTime")]
pub created_time: String,
#[serde(rename = "processingStatus")]
pub processing_status: ProcessingStatus,
#[serde(rename = "processingStartTime", skip_serializing_if = "Option::is_none")]
pub processing_start_time: Option<String>,
#[serde(rename = "processingEndTime", skip_serializing_if = "Option::is_none")]
pub processing_end_time: Option<String>,
#[serde(rename = "dataDocumentId", skip_serializing_if = "Option::is_none")]
pub data_document_id: Option<String>,
#[serde(rename = "errorDocumentId", skip_serializing_if = "Option::is_none")]
pub error_document_id: Option<String>,
#[serde(rename = "pagination", skip_serializing_if = "Option::is_none")]
pub pagination: Option<Box<models::data_kiosk_2023_11_15::QueryPagination>>,
}
impl Query {
pub fn new(query_id: String, query: String, created_time: String, processing_status: ProcessingStatus) -> Query {
Query {
query_id,
query,
created_time,
processing_status,
processing_start_time: None,
processing_end_time: None,
data_document_id: None,
error_document_id: None,
pagination: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProcessingStatus {
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "DONE")]
Done,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "IN_PROGRESS")]
InProgress,
#[serde(rename = "IN_QUEUE")]
InQueue,
}
impl Default for ProcessingStatus {
fn default() -> ProcessingStatus {
Self::Cancelled
}
}