use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct CoachDeckLayout {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "dimension")]
pub dimension: Box<models::GridDimension>,
#[serde(rename = "lowFloorEntry", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub low_floor_entry: Option<Option<bool>>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "deckLevel")]
pub deck_level: String,
#[serde(rename = "placeGroups", skip_serializing_if = "Option::is_none")]
pub place_groups: Option<Vec<models::PlaceGroup>>,
#[serde(rename = "graphicElements", skip_serializing_if = "Option::is_none")]
pub graphic_elements: Option<Vec<models::GraphicElement>>,
#[serde(rename = "serviceIcons", skip_serializing_if = "Option::is_none")]
pub service_icons: Option<Vec<models::ServiceIcon>>,
}
impl CoachDeckLayout {
pub fn new(name: String, dimension: models::GridDimension, id: String, deck_level: String) -> CoachDeckLayout {
CoachDeckLayout {
name,
dimension: Box::new(dimension),
low_floor_entry: None,
id,
deck_level,
place_groups: None,
graphic_elements: None,
service_icons: None,
}
}
}