use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MediaPage {
pub media: Vec<Media>,
pub page: i64,
#[serde(rename = "page_length")]
pub page_length: i64,
pub total: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Media {
pub created: String,
pub duration: f64,
#[serde(rename = "error_message")]
pub error_message: Value,
#[serde(rename = "external_id")]
pub external_id: Value,
#[serde(rename = "hosting_type")]
pub hosting_type: String,
pub id: String,
#[serde(rename = "last_modified")]
pub last_modified: String,
#[serde(rename = "media_type")]
pub media_type: String,
pub metadata: Metadata,
#[serde(rename = "mime_type")]
pub mime_type: Value,
pub relationships: Relationships,
pub schema: Value,
#[serde(rename = "source_url")]
pub source_url: Value,
pub status: String,
#[serde(rename = "trim_in_point")]
pub trim_in_point: Value,
#[serde(rename = "trim_out_point")]
pub trim_out_point: Value,
#[serde(rename = "type")]
pub type_field: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Metadata {
pub author: Option<String>,
pub category: Value,
#[serde(rename = "custom_params")]
pub custom_params: HashMap<String, Value>,
pub description: Option<String>,
#[serde(rename = "external_id")]
pub external_id: Value,
pub language: Value,
pub permalink: Option<String>,
#[serde(rename = "protection_rule_key")]
pub protection_rule_key: Value,
#[serde(rename = "publish_end_date")]
pub publish_end_date: Value,
#[serde(rename = "publish_start_date")]
pub publish_start_date: String,
pub tags: Vec<String>,
pub title: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Relationships {}