use crate::cli::parser::CommonArgsOutputForceOverWrite;
use crate::cli::wrappers::{DataFormatCli, DataReaderModeCli, DdlDialectCli};
use clap::Args;
use rudof_lib::formats::InputSpec;
#[derive(Debug, Clone, Args)]
pub struct DdlArgs {
#[clap(value_parser = clap::value_parser!(InputSpec), required = true)]
pub data: Vec<InputSpec>,
#[arg(
short = 'd',
long = "dialect",
value_name = "DIALECT",
ignore_case = true,
help = "DDL dialect: cypher | gql",
default_value_t = DdlDialectCli::Cypher,
value_enum
)]
pub dialect: DdlDialectCli,
#[arg(
long = "graph-type-name",
value_name = "NAME",
help = "Graph type name used by the gql dialect",
default_value = "rudof_graph"
)]
pub graph_type_name: String,
#[arg(
short = 't',
long = "data-format",
value_name = "FORMAT",
ignore_case = true,
help = "RDF Data format",
default_value_t = DataFormatCli::Turtle
)]
pub data_format: DataFormatCli,
#[arg(long = "base-data", value_name = "IRI")]
pub base_data: Option<String>,
#[arg(
long = "reader-mode",
value_name = "MODE",
ignore_case = true,
help = "RDF Reader mode",
default_value_t = DataReaderModeCli::Strict,
value_enum
)]
pub reader_mode: DataReaderModeCli,
#[command(flatten)]
pub common: CommonArgsOutputForceOverWrite,
}