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
use nettu_scheduler_domain::{Calendar, CalendarSettings, Metadata, ID}; use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct CalendarDTO { pub id: ID, pub user_id: ID, pub settings: CalendarSettingsDTO, pub metadata: Metadata, } #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] pub struct CalendarSettingsDTO { pub week_start: isize, pub timezone: String, } impl CalendarDTO { pub fn new(calendar: Calendar) -> Self { Self { id: calendar.id.clone(), user_id: calendar.user_id.clone(), settings: CalendarSettingsDTO::new(&calendar.settings), metadata: calendar.metadata, } } } impl CalendarSettingsDTO { pub fn new(settings: &CalendarSettings) -> Self { Self { week_start: settings.week_start, timezone: settings.timezone.to_string(), } } }