use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CmmnCaseInstanceStatus {
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "cmmn_case_path", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub cmmn_case_path: Option<Option<String>>,
#[serde(rename = "cmmn_version", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub cmmn_version: Option<Option<i64>>,
#[serde(rename = "business_key", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub business_key: Option<Option<String>>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "job_status", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub job_status: Option<Option<String>>,
#[serde(rename = "updated_at")]
pub updated_at: String,
#[serde(rename = "case_state", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub case_state: Option<Option<models::CmmnCaseState>>,
#[serde(rename = "lifecycle", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub lifecycle: Option<Option<Box<models::CmmnCaseLifecycle>>>,
#[serde(rename = "completable")]
pub completable: bool,
#[serde(rename = "instances")]
pub instances: Vec<models::CmmnPlanItemInstance>,
#[serde(rename = "variables")]
pub variables: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "waiting")]
pub waiting: Vec<models::CmmnWaitingItem>,
#[serde(rename = "incidents")]
pub incidents: Vec<models::CmmnIncident>,
#[serde(rename = "history_len")]
pub history_len: i32,
}
impl CmmnCaseInstanceStatus {
pub fn new(id: uuid::Uuid, created_at: String, updated_at: String, completable: bool, instances: Vec<models::CmmnPlanItemInstance>, variables: std::collections::HashMap<String, serde_json::Value>, waiting: Vec<models::CmmnWaitingItem>, incidents: Vec<models::CmmnIncident>, history_len: i32) -> CmmnCaseInstanceStatus {
CmmnCaseInstanceStatus {
id,
cmmn_case_path: None,
cmmn_version: None,
business_key: None,
created_at,
job_status: None,
updated_at,
case_state: None,
lifecycle: None,
completable,
instances,
variables,
waiting,
incidents,
history_len,
}
}
}