artcoded_api/models/
timesheet_period.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct TimesheetPeriod {
16 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
17 pub id: Option<String>,
18 #[serde(rename = "shortDescription", skip_serializing_if = "Option::is_none")]
19 pub short_description: Option<String>,
20 #[serde(rename = "date", skip_serializing_if = "Option::is_none")]
21 pub date: Option<String>,
22 #[serde(rename = "morningStartTime", skip_serializing_if = "Option::is_none")]
23 pub morning_start_time: Option<String>,
24 #[serde(rename = "morningEndTime", skip_serializing_if = "Option::is_none")]
25 pub morning_end_time: Option<String>,
26 #[serde(rename = "afternoonStartTime", skip_serializing_if = "Option::is_none")]
27 pub afternoon_start_time: Option<String>,
28 #[serde(rename = "afternoonEndTime", skip_serializing_if = "Option::is_none")]
29 pub afternoon_end_time: Option<String>,
30 #[serde(rename = "projectName", skip_serializing_if = "Option::is_none")]
31 pub project_name: Option<String>,
32 #[serde(rename = "periodType", skip_serializing_if = "Option::is_none")]
33 pub period_type: Option<PeriodType>,
34 #[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
35 pub duration: Option<i64>,
36 #[serde(rename = "dayOfWeek", skip_serializing_if = "Option::is_none")]
37 pub day_of_week: Option<DayOfWeek>,
38 #[serde(rename = "rowFilled", skip_serializing_if = "Option::is_none")]
39 pub row_filled: Option<bool>,
40 #[serde(rename = "durationInHours", skip_serializing_if = "Option::is_none")]
41 pub duration_in_hours: Option<String>,
42}
43
44impl TimesheetPeriod {
45 pub fn new() -> TimesheetPeriod {
46 TimesheetPeriod {
47 id: None,
48 short_description: None,
49 date: None,
50 morning_start_time: None,
51 morning_end_time: None,
52 afternoon_start_time: None,
53 afternoon_end_time: None,
54 project_name: None,
55 period_type: None,
56 duration: None,
57 day_of_week: None,
58 row_filled: None,
59 duration_in_hours: None,
60 }
61 }
62}
63#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
65pub enum PeriodType {
66 #[serde(rename = "SICKNESS")]
67 Sickness,
68 #[serde(rename = "PUBLIC_HOLIDAYS")]
69 PublicHolidays,
70 #[serde(rename = "AUTHORIZED_HOLIDAYS")]
71 AuthorizedHolidays,
72 #[serde(rename = "WORKING_DAY")]
73 WorkingDay,
74 #[serde(rename = "WEEKEND")]
75 Weekend,
76}
77
78impl Default for PeriodType {
79 fn default() -> PeriodType {
80 Self::Sickness
81 }
82}
83#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
85pub enum DayOfWeek {
86 #[serde(rename = "MONDAY")]
87 Monday,
88 #[serde(rename = "TUESDAY")]
89 Tuesday,
90 #[serde(rename = "WEDNESDAY")]
91 Wednesday,
92 #[serde(rename = "THURSDAY")]
93 Thursday,
94 #[serde(rename = "FRIDAY")]
95 Friday,
96 #[serde(rename = "SATURDAY")]
97 Saturday,
98 #[serde(rename = "SUNDAY")]
99 Sunday,
100}
101
102impl Default for DayOfWeek {
103 fn default() -> DayOfWeek {
104 Self::Monday
105 }
106}