#![allow(
clippy::doc_lazy_continuation,
clippy::doc_markdown,
clippy::struct_excessive_bools,
rustdoc::broken_intra_doc_links,
rustdoc::bare_urls,
rustdoc::invalid_html_tags
)]
#[allow(unused_imports)]
use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ActionUri {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_type: Option<crate::entities::HttpRequestType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
pub uri: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri_type: Option<crate::types::UriType>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Appointment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
pub appointment_id: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub back_office_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub back_office_parent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
pub end: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub importance: Option<crate::entities::Importance>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_all_day: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_manual_appointment: Option<bool>,
pub job_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub non_working_time: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub planning_quantity: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub postamble: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub preamble: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replace_resource: Option<bool>,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub round_to_unit_of_measure: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
pub source_app: String,
pub source_type: String,
pub start: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<String>,
pub task_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time_marker: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit_of_measure: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit_of_measure_conversion: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub use_fixed_planning_quantity: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentCategory {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
pub category: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentContainer {
pub appointment: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
pub container: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentContent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentFieldValue {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
pub field_code: String,
pub field_value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentImportance {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub importance: Option<crate::entities::Importance>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentLocked {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentPlanningQuantity {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quantity: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentTimeMarker {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
pub time_marker: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppointmentUri {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
pub description: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
pub uri: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Assignment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
pub appointment_id: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
pub source_app: String,
pub source_type: String,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum BudgetEntrySource {
#[default]
Planning = 0,
Timesheet = 1,
Manual = 2,
Budget = 3,
External = 4,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Caption {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub context: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_table: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Category {
pub color: String,
pub display_name: String,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Container {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub handle_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub handle_locked: Option<bool>,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FilterGroup {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub column_no: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data_filter: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<i32>,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FilterValue {
pub group: String,
pub value: String,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum HttpRequestType {
#[default]
Get = 1,
Post = 2,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum Importance {
#[default]
Medium = 0,
High = 1,
Low = 2,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Job {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allow_dependencies: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub available_in_gantt: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_address_geo_lat: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_address_geo_long: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bill_region: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub check_appointments: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_address_geo_lat: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_address_geo_long: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contact_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub creation_date_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub creator: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_address_geo_lat: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_address_geo_long: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_mobile_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub customer_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enable_manual_selection: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit1: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit2: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit3: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit4: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit5: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date4: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date5: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal1: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal2: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal3: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal4: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal5: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text10: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text11: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text12: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text13: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text14: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text15: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text16: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text17: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text18: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text19: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text20: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text4: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text5: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text6: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text7: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text8: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text9: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub importance: Option<crate::entities::Importance>,
pub job_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub note: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub over_rule_gantt_planning: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pin: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub responsible: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
pub short_description: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_address_geo_lat: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_address_geo_long: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_city: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_country: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_county: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_address_geo_lat: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_address_geo_long: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_city: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_country: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_county: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_postcode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_region: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_street: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_from_street_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_postcode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_region: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_street: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub site_street_no: Option<String>,
pub source_app: String,
pub source_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time_marker: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Message {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub severity: Option<crate::types::Severity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Notification {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_guid: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub connector_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub type_: Option<crate::types::NotificationType>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Pin {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProjectMember {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
pub job_no: String,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Resource {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bulk_capacity: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bulk_planning: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub check_appointments: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub department: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub do_not_show: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exchange_integration_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field_service_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit1: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit2: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit3: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit4: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit5: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date4: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date5: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal1: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal2: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal3: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal4: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal5: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text10: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text11: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text12: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text13: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text14: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text15: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text16: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text17: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text18: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text19: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text20: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text4: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text5: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text6: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text7: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text8: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text9: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gps_tracking_resource_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_address_geo_lat: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_address_geo_long: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_city: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_country: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_county: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_postcode: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_region: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_street: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub home_street_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub in_service_from: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub in_service_till: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mobile_phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub personal_email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pin: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replacement_resource: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_gps_tracking_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_type_id: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_member_sort: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_member_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_sort: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_description1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_description2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_description3: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceCalendar {
pub calendar_code: String,
pub code: String,
pub end_date: String,
pub resource_no: String,
pub start_date: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceCapacity {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity_in_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quantity: Option<f64>,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit_of_measure: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit_of_measure_conversion: Option<f64>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceCertificate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_score_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub score: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub valid_until: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceFilterValue {
pub filter_group: String,
pub filter_value: String,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_app: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transfer_to_temp: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceGpsTracking {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gps_tracking_resource_no: Option<String>,
pub latitude: f64,
pub longitude: f64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub power: Option<String>,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub row_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub speed: Option<i32>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceUri {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub resource_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum SchedulingMode {
#[default]
Normal = 0,
FixedDuration = 1,
EffortDriven = 2,
DynamicAssignment = 3,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Tag {
pub code: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon_set: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Task {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actual_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actual_response_date_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actual_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_earliest_allowed: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_latest_allowed: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appointment_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub base_line_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub base_line_percent_done: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub base_line_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bulk_planning_qty: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub calendar_code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub certificate_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub check_appointments: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confirmed_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confirmed_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub constraint_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub constraint_type: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub container_index: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub container_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contract_description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contract_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contract_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contract_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub contract_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub create_job: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dead_line: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub do_not_count_appointment_resource: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration_in_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expected_response_date_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit1: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit2: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit3: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit4: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_bit5: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date4: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_date5: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal1: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal2: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal3: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal4: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_decimal5: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text10: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text11: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text12: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text13: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text14: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text15: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text16: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text17: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text18: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text19: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text20: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text4: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text5: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text6: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text7: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text8: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub free_text9: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ignore_calendars: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub importance: Option<crate::entities::Importance>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub index: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub infinite_task: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iris_area: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iris_fault: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iris_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iris_resolution: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub iris_symptom: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_complete: Option<bool>,
pub job_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labor_warranty_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labor_warranty_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location_description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub manually_scheduled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub note: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub over_rule_gantt_planning: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_task_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parts_warranty_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parts_warranty_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub percent_done: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub perpetuation_in_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pin: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub planning_qty: Option<f64>,
#[serde(
rename = "planningUOM",
default,
skip_serializing_if = "Option::is_none"
)]
pub planning_uom: Option<String>,
#[serde(
rename = "planningUOMConversion",
default,
skip_serializing_if = "Option::is_none"
)]
pub planning_uom_conversion: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub predecessor_lag: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub predecessor_task_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requested_end_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requested_end_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requested_start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requested_start_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required_no_resources: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required_total_duration: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required_total_duration_in_seconds: Option<i64>,
#[serde(
rename = "roundToUOM",
default,
skip_serializing_if = "Option::is_none"
)]
pub round_to_uom: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scheduling_mode: Option<crate::entities::SchedulingMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service_class: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service_group: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub service_serial_no: Option<String>,
pub short_description: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill3: Option<String>,
pub source_app: String,
pub source_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<String>,
pub task_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_open_as_of: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_open_till: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_type: Option<crate::entities::TaskType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time_marker: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_description1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_description2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_description3: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub use_fix_planning_qty: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TaskBudgetEntry {
pub delta_in_seconds: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub external_id: String,
pub job_no: String,
pub period_end: String,
pub period_start: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<crate::entities::BudgetEntrySource>,
pub source_app: String,
pub source_type: String,
pub task_no: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TaskContainer {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub index: Option<i32>,
pub job_no: String,
pub name: String,
pub source_app: String,
pub source_type: String,
pub task_no: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TaskDependency {
pub from_job_no: String,
pub from_task_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lag: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lag_unit: Option<String>,
pub source_app: String,
pub source_type: String,
pub to_job_no: String,
pub to_task_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub type_: Option<i32>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TaskFilterValue {
pub filter_group: String,
pub filter_value: String,
pub job_no: String,
pub source_app: String,
pub source_type: String,
pub task_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transfer_to_temp: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TaskLocked {
pub job_no: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sent_from_back_office: Option<bool>,
pub source_app: String,
pub source_type: String,
pub task_no: String,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum TaskType {
#[default]
Planning = 0,
Project = 1,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TaskUri {
pub description: String,
pub job_no: String,
pub source_app: String,
pub source_type: String,
pub task_no: String,
pub uri: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TimeEntry {
#[serde(
rename = "backofficeID",
default,
skip_serializing_if = "Option::is_none"
)]
pub backoffice_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration_in_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_billable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_no: Option<String>,
pub source_app: String,
pub source_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<crate::entities::TimeEntryStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time_entry_id: Option<i64>,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum TimeEntryStatus {
#[default]
Draft = 0,
Submitting = 1,
Accepted = 2,
Failed = 3,
Approved = 4,
Rejected = 5,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TimeMarker {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
pub name: String,
}
#[derive(Debug, Clone, PartialEq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TimeSession {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub note: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource_no: Option<String>,
pub source_app: String,
pub source_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub started_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stopped_at: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_no: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time_session_id: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub type_: Option<crate::entities::TimeSessionType>,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
Hash,
Default,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i32)]
pub enum TimeSessionType {
#[default]
Work = 0,
Travel = 1,
Waiting = 2,
}