use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[serde(default)]
pub struct VideosAttributes {
#[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
pub availability: Option<Vec<Availability>>,
#[serde(rename = "copyright", skip_serializing_if = "Option::is_none")]
pub copyright: Option<Box<models::Copyright>>,
#[serde(rename = "duration")]
pub duration: String,
#[serde(rename = "explicit")]
pub explicit: bool,
#[serde(rename = "externalLinks", skip_serializing_if = "Option::is_none")]
pub external_links: Option<Vec<models::ExternalLink>>,
#[serde(rename = "isrc")]
pub isrc: String,
#[serde(rename = "popularity")]
pub popularity: f64,
#[serde(rename = "releaseDate", skip_serializing_if = "Option::is_none")]
pub release_date: Option<String>,
#[serde(rename = "title")]
pub title: String,
#[serde(rename = "version", skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl VideosAttributes {
pub fn new(duration: String, explicit: bool, isrc: String, popularity: f64, title: String) -> VideosAttributes {
VideosAttributes {
availability: None,
copyright: None,
duration,
explicit,
external_links: None,
isrc,
popularity,
release_date: None,
title,
version: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Availability {
#[serde(rename = "STREAM")]
Stream,
#[serde(rename = "DJ")]
Dj,
#[serde(rename = "STEM")]
Stem,
}
impl Default for Availability {
fn default() -> Availability {
Self::Stream
}
}