use console::Emoji;
use indicatif::ProgressStyle;
use lazy_static::lazy_static;

pub static EMOJI_HARMONY: Emoji<'_, '_> = Emoji("🎼", "");
pub static EMOJI_SUCCESS: Emoji<'_, '_> = Emoji("✅", "");
pub static EMOJI_SKIP: Emoji<'_, '_> = Emoji("⏭️", "");
pub static EMOJI_ERROR: Emoji<'_, '_> = Emoji("⚠️", "");
pub static EMOJI_DEPLOY: Emoji<'_, '_> = Emoji("🚀", "");
pub static EMOJI_TOPOLOGY: Emoji<'_, '_> = Emoji("📦", "");
pub static EMOJI_SCORE: Emoji<'_, '_> = Emoji("🎶", "");

lazy_static! {
    pub static ref SECTION_STYLE: ProgressStyle = ProgressStyle::default_spinner()
        .template("{wide_msg:.bold}")
        .unwrap();
    pub static ref SPINNER_STYLE: ProgressStyle = ProgressStyle::default_spinner()
        .template("    {spinner:.green} {wide_msg}")
        .unwrap()
        .tick_strings(&["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]);
    pub static ref SUCCESS_SPINNER_STYLE: ProgressStyle = SPINNER_STYLE
        .clone()
        .tick_strings(&[format!("{}", EMOJI_SUCCESS).as_str()]);
    pub static ref SKIP_SPINNER_STYLE: ProgressStyle = ProgressStyle::default_spinner()
        .template("    {spinner:.orange} {wide_msg}")
        .unwrap()
        .clone()
        .tick_strings(&[format!("{}", EMOJI_SKIP).as_str()]);
    pub static ref ERROR_SPINNER_STYLE: ProgressStyle = ProgressStyle::default_spinner()
        .template("    {spinner:.red} {wide_msg}")
        .unwrap()
        .clone()
        .tick_strings(&[format!("{}", EMOJI_ERROR).as_str()]);
}
