use std::path::PathBuf;
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
pub(crate) enum FrontendArg {
React,
Vue,
}
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
pub(crate) enum OutputFormat {
Human,
Json,
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub(crate) struct NewOptions {
pub(crate) destination: PathBuf,
pub(crate) frontend: FrontendArg,
pub(crate) no_db: bool,
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub(crate) enum DbCommand {
Migrate,
Rollback { steps: Option<u32> },
Status,
Fresh { force: bool },
Reset { force: bool },
Refresh { force: bool },
Prepare,
PrepareCheck,
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub(crate) enum CliCommand {
New(NewOptions),
Dev,
Build,
Check(OutputFormat),
Doctor(OutputFormat),
Exposure(OutputFormat),
Script {
name: String,
arguments: Vec<String>,
},
Db(DbCommand),
}