jobber 0.1.0-alpha

Minimalistic console work time tracker
use crate::{
    commands::{Cli, Result},
    jobber::JobberDelete,
    print_tip,
};
use clap::Parser;
use color_print::cprintln;

/// Restore deleted job.
#[derive(Parser, Debug)]
pub(crate) struct RestoreJob {
    /// Job's identifier
    id: usize,
}

impl RestoreJob {
    pub(crate) fn run(&self, cli: &Cli) -> Result<()> {
        let mut database = cli.open_database()?;
        database.delete_job(self.id, false)?;
        cli.close_database(database)?;
        cprintln!("Successfully restored job <s>{}</>.", self.id);
        print_tip!(cli);
        print_tip!(cli, "Use <s>jobber undo</> to re-delete the job.",);
        print_tip!(cli, "Use <s>jobber list jobs</> to list jobs.");
        Ok(())
    }
}