use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PendingUserTask {
#[serde(rename = "instance_id")]
pub instance_id: uuid::Uuid,
#[serde(rename = "workspace_id")]
pub workspace_id: String,
#[serde(rename = "element_id")]
pub element_id: String,
#[serde(rename = "name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub name: Option<Option<String>>,
#[serde(rename = "bpmn_flow_path", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub bpmn_flow_path: Option<Option<String>>,
#[serde(rename = "bpmn_version", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub bpmn_version: Option<Option<i64>>,
#[serde(rename = "instance_created_at")]
pub instance_created_at: String,
#[serde(rename = "instance_created_by")]
pub instance_created_by: String,
#[serde(rename = "parked_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub parked_at: Option<Option<String>>,
#[serde(rename = "assignee", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub assignee: Option<Option<String>>,
#[serde(rename = "owner", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub owner: Option<Option<String>>,
#[serde(rename = "candidate_users", skip_serializing_if = "Option::is_none")]
pub candidate_users: Option<Vec<String>>,
#[serde(rename = "candidate_groups", skip_serializing_if = "Option::is_none")]
pub candidate_groups: Option<Vec<String>>,
#[serde(rename = "assignment_unresolved", skip_serializing_if = "Option::is_none")]
pub assignment_unresolved: Option<bool>,
#[serde(rename = "due_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub due_date: Option<Option<String>>,
#[serde(rename = "priority", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub priority: Option<Option<String>>,
#[serde(rename = "form_key", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub form_key: Option<Option<String>>,
#[serde(rename = "form_fields", skip_serializing_if = "Option::is_none")]
pub form_fields: Option<Vec<models::BpmnUserTaskFormField>>,
#[serde(rename = "form_validation_disabled", skip_serializing_if = "Option::is_none")]
pub form_validation_disabled: Option<bool>,
}
impl PendingUserTask {
pub fn new(instance_id: uuid::Uuid, workspace_id: String, element_id: String, instance_created_at: String, instance_created_by: String) -> PendingUserTask {
PendingUserTask {
instance_id,
workspace_id,
element_id,
name: None,
bpmn_flow_path: None,
bpmn_version: None,
instance_created_at,
instance_created_by,
parked_at: None,
assignee: None,
owner: None,
candidate_users: None,
candidate_groups: None,
assignment_unresolved: None,
due_date: None,
priority: None,
form_key: None,
form_fields: None,
form_validation_disabled: None,
}
}
}