use clap::Subcommand;
use serde::{Deserialize, Serialize};
use strum::{Display, EnumString, FromRepr, VariantNames};
pub mod manager;
pub mod profile;
pub mod profile_section;
mod profile_tracks;
mod refresh_result;
pub mod wizards;
static VALID_INTERVALS: [u32; 10] = [2, 3, 4, 5, 6, 10, 12, 15, 20, 30];
#[derive(
Clone,
Copy,
Debug,
Default,
Deserialize,
Display,
EnumString,
PartialEq,
Serialize,
sqlx::Type,
VariantNames,
)]
#[sqlx(type_name = "section_type")]
pub enum SectionType {
#[default]
#[strum(to_string = "Unplayed Tracks")]
Unplayed,
#[strum(to_string = "Least Played Tracks")]
LeastPlayed,
#[strum(to_string = "Oldest Tracks")]
Oldest,
}
#[derive(
Clone,
Copy,
Debug,
Default,
Deserialize,
Display,
EnumString,
FromRepr,
PartialEq,
Serialize,
VariantNames,
)]
pub enum ProfileSource {
#[default]
Library,
Collection,
#[strum(to_string = "Single Artist")]
SingleArtist,
}
#[derive(Debug, PartialEq, Subcommand)]
pub enum ProfileAction {
Create,
Delete,
Edit,
List,
Preview,
Update,
View,
}