use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct PlayQueueAddFutureOperationPayloadMeta {
#[serde(rename = "batchId", skip_serializing_if = "Option::is_none")]
pub batch_id: Option<uuid::Uuid>,
#[serde(rename = "legacySource", skip_serializing_if = "Option::is_none")]
pub legacy_source: Option<Box<models::LegacySource>>,
#[serde(rename = "mode")]
pub mode: Mode,
#[serde(rename = "positionBefore", skip_serializing_if = "Option::is_none")]
pub position_before: Option<String>,
}
impl PlayQueueAddFutureOperationPayloadMeta {
pub fn new(mode: Mode) -> PlayQueueAddFutureOperationPayloadMeta {
PlayQueueAddFutureOperationPayloadMeta {
batch_id: None,
legacy_source: None,
mode,
position_before: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Mode {
#[serde(rename = "ADD_TO_FRONT")]
AddToFront,
#[serde(rename = "ADD_TO_BACK")]
AddToBack,
#[serde(rename = "ADD_BEFORE")]
AddBefore,
#[serde(rename = "REPLACE_ALL")]
ReplaceAll,
}
impl Default for Mode {
fn default() -> Mode {
Self::AddToFront
}
}