schedulelib/dto/
hours_info.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use std::collections::HashMap;

use chrono::NaiveDateTime;
use serde::{Deserialize, Serialize};

use crate::dto::study_period_response::StudyPeriodResponse;

#[derive(Serialize, Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct HoursInfo {
    pub study_period_dto: StudyPeriodResponse,
    pub hours: HashMap<String, (i64, i64)>,
}

impl HoursInfo {
    pub fn default() -> HoursInfo {
        HoursInfo {
            study_period_dto: StudyPeriodResponse {
                id: Default::default(),
                ver: None,
                date_start: NaiveDateTime::from_timestamp_opt(0, 0).unwrap(),
                date_end: NaiveDateTime::from_timestamp_opt(0, 0).unwrap(),
                period_type: "".to_string(),
                status: "".to_string(),
                organization: Default::default(),
                parent: None,
                name: None,
                melody_start: None,
                melody_end: None,
                active_schedule: None,
                origin: None,
                slot_list: Vec::new(),
                study_period_list: Vec::new(),
                schedules: Vec::new(),
                public_holidays: None,
            },
            hours: Default::default(),
        }
    }
}