use crate::commands::{Cli, Result};
use clap::{Parser, Subcommand};
mod create_client;
mod create_company;
mod create_invoice;
mod create_job;
mod create_tag;
mod create_worker;
use create_client::CreateClient;
use create_company::CreateCompany;
use create_invoice::CreateInvoice;
use create_job::CreateJob;
use create_tag::CreateTag;
use create_worker::CreateWorker;
#[derive(Parser)]
pub(crate) struct Create {
#[command(subcommand)]
pub(crate) command: CreateCommand,
}
#[derive(Subcommand)]
pub(crate) enum CreateCommand {
Company(CreateCompany),
Worker(CreateWorker),
Client(CreateClient),
Job(CreateJob),
Tag(CreateTag),
Invoice(CreateInvoice),
}
impl Create {
pub(crate) fn run(&self, cli: &Cli) -> Result<()> {
match &self.command {
CreateCommand::Company(create) => create.run(cli),
CreateCommand::Worker(create) => create.run(cli),
CreateCommand::Client(create) => create.run(cli),
CreateCommand::Job(create) => create.run(cli),
CreateCommand::Tag(create) => create.run(cli),
CreateCommand::Invoice(create) => create.run(cli),
}
}
}