use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Clip {
pub id: String,
pub title: String,
pub status: String,
pub model_name: String,
pub audio_url: Option<String>,
pub video_url: Option<String>,
pub image_url: Option<String>,
pub created_at: String,
#[serde(default)]
pub play_count: u64,
#[serde(default)]
pub upvote_count: u64,
#[serde(default)]
pub metadata: ClipMetadata,
}
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
pub struct ClipMetadata {
pub tags: Option<String>,
pub prompt: Option<String>,
pub duration: Option<f64>,
pub avg_bpm: Option<f64>,
#[serde(default)]
pub has_stem: bool,
#[serde(default)]
pub is_remix: bool,
#[serde(default)]
pub make_instrumental: bool,
#[serde(rename = "type")]
pub clip_type: Option<String>,
}