use serde::{Deserialize, Serialize};
use crate::client::file::model::{Filament, FileInfo};
#[derive(Serialize, Deserialize, Debug)]
pub struct JobInfo {
pub file: FileInfo,
#[serde(rename = "estimatedPrintTime")]
pub estimated_print_time: Option<f64>,
#[serde(rename = "lastPrintTime")]
pub last_print_time: Option<f64>,
pub filament: Option<Filament>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ProgressInfo {
pub completion: f64,
pub filepos: usize,
#[serde(rename = "printTime")]
pub print_time: usize,
#[serde(rename = "printTimeLeft")]
pub print_time_left: usize,
#[serde(rename = "printTimeLeftOrigin")]
pub print_time_left_origin: PrintTimeLeftOrigin,
}
#[derive(Serialize, Deserialize, Debug)]
pub enum PrintTimeLeftOrigin {
#[serde(rename = "linear")]
Linear,
#[serde(rename = "analysis")]
Analysis,
#[serde(rename = "estimate")]
Estimate,
#[serde(rename = "average")]
Average,
#[serde(rename = "mixed-analysis")]
MixedAnalysis,
#[serde(rename = "mixed-average")]
MixedAverage,
}