use clap::Args;
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "polars-ai")]
#[command(author = "Mahmoud Harmouch <oss@wiseai.dev>")]
#[command(version = "0.0.1")]
#[command(propagate_version = true)]
#[command(about = "\x1b[1;92m📊 Simple AI powered CLI for working with Polars DataFrames 📊\x1b[0m", long_about = None)]
pub struct Cli {
#[arg(short, long, action = clap::ArgAction::Count)]
debug: u8,
#[command(subcommand)]
pub command: Option<Commands>,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Input(Input),
}
#[derive(Debug, Args)]
pub struct Input {
#[clap(short, long)]
pub file_name: Option<String>,
#[command(subcommand)]
pub command: InputCommands,
}
#[derive(Subcommand, Debug)]
pub enum InputCommands {
Show(OptionValue),
Ask(Query),
}
#[derive(Debug, Args)]
pub struct OptionValue {
#[clap(short, long)]
pub option: Option<String>,
}
#[derive(Debug, Args)]
pub struct Query {
#[clap(short, long)]
pub query: Option<String>,
}