1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct PendingUserTask {
17 #[serde(rename = "instance_id")]
19 pub instance_id: uuid::Uuid,
20 #[serde(rename = "workspace_id")]
21 pub workspace_id: String,
22 #[serde(rename = "element_id")]
24 pub element_id: String,
25 #[serde(rename = "token_id")]
27 pub token_id: uuid::Uuid,
28 #[serde(rename = "name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub name: Option<Option<String>>,
31 #[serde(rename = "bpmn_flow_path", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
32 pub bpmn_flow_path: Option<Option<String>>,
33 #[serde(rename = "bpmn_version", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34 pub bpmn_version: Option<Option<i64>>,
35 #[serde(rename = "instance_created_at")]
36 pub instance_created_at: String,
37 #[serde(rename = "instance_created_by")]
38 pub instance_created_by: String,
39 #[serde(rename = "parked_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub parked_at: Option<Option<String>>,
42 #[serde(rename = "assignee", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
44 pub assignee: Option<Option<String>>,
45 #[serde(rename = "owner", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
47 pub owner: Option<Option<String>>,
48 #[serde(rename = "candidate_users", skip_serializing_if = "Option::is_none")]
49 pub candidate_users: Option<Vec<String>>,
50 #[serde(rename = "candidate_groups", skip_serializing_if = "Option::is_none")]
51 pub candidate_groups: Option<Vec<String>>,
52 #[serde(rename = "assignment_unresolved", skip_serializing_if = "Option::is_none")]
54 pub assignment_unresolved: Option<bool>,
55 #[serde(rename = "unresolved_assignments", skip_serializing_if = "Option::is_none")]
57 pub unresolved_assignments: Option<Vec<models::BpmnUnresolvedAssignment>>,
58 #[serde(rename = "identity_resolved_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
60 pub identity_resolved_at: Option<Option<String>>,
61 #[serde(rename = "claimed_by", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
63 pub claimed_by: Option<Option<String>>,
64 #[serde(rename = "claimed_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
65 pub claimed_at: Option<Option<String>>,
66 #[serde(rename = "due_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
68 pub due_date: Option<Option<String>>,
69 #[serde(rename = "priority", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
70 pub priority: Option<Option<String>>,
71 #[serde(rename = "form_key", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
73 pub form_key: Option<Option<String>>,
74 #[serde(rename = "form_fields", skip_serializing_if = "Option::is_none")]
75 pub form_fields: Option<Vec<models::BpmnUserTaskFormField>>,
76 #[serde(rename = "form_validation_disabled", skip_serializing_if = "Option::is_none")]
78 pub form_validation_disabled: Option<bool>,
79}
80
81impl PendingUserTask {
82 pub fn new(instance_id: uuid::Uuid, workspace_id: String, element_id: String, token_id: uuid::Uuid, instance_created_at: String, instance_created_by: String) -> PendingUserTask {
84 PendingUserTask {
85 instance_id,
86 workspace_id,
87 element_id,
88 token_id,
89 name: None,
90 bpmn_flow_path: None,
91 bpmn_version: None,
92 instance_created_at,
93 instance_created_by,
94 parked_at: None,
95 assignee: None,
96 owner: None,
97 candidate_users: None,
98 candidate_groups: None,
99 assignment_unresolved: None,
100 unresolved_assignments: None,
101 identity_resolved_at: None,
102 claimed_by: None,
103 claimed_at: None,
104 due_date: None,
105 priority: None,
106 form_key: None,
107 form_fields: None,
108 form_validation_disabled: None,
109 }
110 }
111}
112