use crate::errors::AppError;
use crate::formats::TargetFormat;
use crate::queue::TimeStamp;
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Clone, Deserialize, Serialize)]
pub struct TranscodeStatus {
pub success: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub formats: Option<Vec<TranscodeFormatStatus>>,
#[allow(dead_code)]
#[serde(skip_serializing_if = "Option::is_none")]
pub additional: Option<Vec<AdditionalStatus>>,
pub completed: TimeStamp,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<AppError>,
}
#[derive(Clone, Deserialize, Serialize)]
pub struct TranscodeFormatStatus {
pub format: TargetFormat,
pub path: PathBuf,
}
#[derive(Clone, Deserialize, Serialize)]
pub struct AdditionalStatus {
pub path: PathBuf,
pub size: u64,
#[serde(skip_serializing_if = "Option::is_none")]
pub resized: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_size: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resize_command: Option<String>,
}