use serde::{Deserialize, Serialize};
use uuid::Uuid;
use chrono::{DateTime, Utc};

/// Track information
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Track {
    pub id: Uuid,
    pub title: String,
    pub artist: String,
    pub album: Option<String>,
    pub genre: Option<String>,
    pub duration: u32,
    pub file_size: u64,
    pub format: String,
    pub bitrate: u32,
    pub sample_rate: u32,
    pub file_path: String,
    pub cover_art_url: Option<String>,
    pub is_public: bool,
    pub uploaded_by: Uuid,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
}
