use chrono::{DateTime, Utc};

#[derive(Debug)]
pub struct MediaFileInput {
    pub filepath: std::path::PathBuf,
    pub filename: String,
    pub content_type: Option<String>,
    pub file_size: u64,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
}

#[derive(Debug)]
pub struct MediaFile {
    pub id: u64,
    pub disk: String,
    pub filepath: std::path::PathBuf,
    pub filename: String,
    pub content_type: Option<String>,
    pub file_size: u64,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
}

#[derive(Debug, serde::Deserialize, serde::Serialize)]
#[serde(tag = "method")]
pub enum MediaTask {
    SynchronizeAll,
    Synchronize { disk: String },
}

#[derive(Debug)]
pub enum VideoStreamResponse {
    Redirect(String),
}
