use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct AlbumCreateOperationPayloadDataAttributes {
#[serde(rename = "albumType", skip_serializing_if = "Option::is_none")]
pub album_type: Option<AlbumType>,
#[serde(rename = "copyright", skip_serializing_if = "Option::is_none")]
pub copyright: Option<Box<models::Copyright>>,
#[serde(rename = "explicitLyrics", skip_serializing_if = "Option::is_none")]
pub explicit_lyrics: Option<bool>,
#[serde(rename = "releaseDate", skip_serializing_if = "Option::is_none")]
pub release_date: Option<String>,
#[serde(rename = "title")]
pub title: String,
#[serde(rename = "upc", skip_serializing_if = "Option::is_none")]
pub upc: Option<String>,
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl AlbumCreateOperationPayloadDataAttributes {
pub fn new(title: String) -> AlbumCreateOperationPayloadDataAttributes {
AlbumCreateOperationPayloadDataAttributes {
album_type: None,
copyright: None,
explicit_lyrics: None,
release_date: None,
title,
upc: None,
version: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AlbumType {
#[serde(rename = "ALBUM")]
Album,
#[serde(rename = "EP")]
Ep,
#[serde(rename = "SINGLE")]
Single,
}
impl Default for AlbumType {
fn default() -> AlbumType {
Self::Album
}
}