use serde::Serialize;
use std::path::PathBuf;
use uuid::Uuid;
#[derive(Debug, Serialize)]
pub struct WorkspaceAlbum {
pub album_id: Uuid,
#[serde(flatten)]
pub state: WorkspaceAlbumState,
}
pub struct UntrackedWorkspaceAlbum {
pub album_id: Uuid,
pub path: PathBuf,
pub simplified: bool,
pub discs: Vec<UntrackedWorkspaceDisc>,
}
pub struct UntrackedWorkspaceDisc {
pub index: usize,
pub path: PathBuf,
pub cover: PathBuf,
pub tracks: Vec<PathBuf>,
}
#[derive(Debug, Serialize)]
#[serde(tag = "type", content = "path")]
#[serde(rename_all = "kebab-case")]
pub enum WorkspaceAlbumState {
Untracked(PathBuf),
Committed(PathBuf),
Published,
Dangling(PathBuf),
Garbage,
}