#![allow(non_snake_case)]
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct ChartUploadRequest {
pub(crate) chartData: ChartSchema,
pub(crate) title: Option<String>,
pub(crate) description: Option<String>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct ChartCreationReturn {
pub(crate) chartDocument: ChartDocument,
pub(crate) publicLink: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct ChartDocument {
pub(crate) chartData: ChartSchema,
pub(crate) chartid: String,
pub(crate) title: Option<String>,
pub(crate) description: Option<String>,
pub(crate) username: String,
pub(crate) lastUpdated: String,
pub(crate) isSnapshot: bool,
pub(crate) isPrivate: bool,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct ChartSchema {
pub(crate) elements: Vec<ChartElement>,
pub(crate) lanes: usize,
pub(crate) lanesConfig: HashMap<usize, LaneConfig>,
pub(crate) shape: String,
pub(crate) colorTags: Vec<ColorTag>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct ChartElement {
pub(crate) start: u16,
pub(crate) end: u16,
pub(crate) lane: usize,
pub(crate) text: Option<String>,
pub(crate) color: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct ColorTag {
pub(crate) tag: String,
pub(crate) color: String,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub(crate) struct LaneConfig {
pub(crate) locked: bool,
}