use thiserror::Error;
#[derive(Error, Debug)]
pub enum ValidationError {
#[error("Unsupported validation mode: '{mode}'. Valid modes are: 'shex', 'shacl', 'pgschema'")]
UnsupportedValidationMode { mode: String },
#[error("Unsupported SHACL validation mode: '{mode}'. Valid modes are: 'native', 'sparql'")]
UnsupportedSHACLValidationMode { mode: String },
#[error("Unsupported validation sort by mode: '{mode}'. Valid options are: 'node', 'details'")]
UnsupportedValidationSortByMode { mode: String },
#[error(
"Unsupported ShEx validation sort by mode: '{mode}'. Valid options are: 'node', 'shape', 'status', 'details'"
)]
UnsupportedShExValidationSortByMode { mode: String },
#[error(
"Unsupported SHACL validation sort by mode: '{mode}'. Valid options are: 'severity', 'node', 'component', 'value', 'path', 'sourceshape', 'details'"
)]
UnsupportedShaclValidationSortByMode { mode: String },
#[error(
"Unsupported validation result format: '{format}'. Valid formats are: 'turtle', 'ntriples', 'rdfxml', 'trig', 'n3', 'nquads', 'compact', 'details', 'json', 'csv'"
)]
UnsupportedValidationResultFormat { format: String },
#[error(
"Unsupported ShEx validation result format: '{format}'. Valid formats are: 'turtle', 'ntriples', 'rdfxml', 'trig', 'n3', 'nquads', 'compact', 'details', 'json', 'csv'"
)]
UnsupportedShExValidationResultFormat { format: String },
#[error(
"Cannot convert format '{format}' to ShapeMap format. Only 'compact', 'details', 'json', and 'csv' are supported for ShapeMap conversion"
)]
UnsupportedConversionToShapeMap { format: String },
#[error(
"Cannot convert format '{format}' to Property Graph schema validation format. Only 'compact', 'details', 'json', and 'csv' are supported for Property Graph schema validation conversion"
)]
UnsupportedConversionToPgSchemaValidationResultFormat { format: String },
#[error("Cannot convert format '{format}' to RDF format.")]
UnsupportedConversionToRDFFormat { format: String },
#[error(
"Unsupported SHACL validation result format: '{format}'. Valid formats are: 'turtle', 'ntriples', 'rdfxml', 'trig', 'n3', 'nquads', 'minimal', 'compact', 'details', 'json', 'csv'"
)]
UnsupportedShaclValidationResultFormat { format: String },
#[error(
"Unsupported Property Graph schema validation result format: '{format}'. Valid formats are: 'compact', 'details', 'json', 'csv'"
)]
NoSupportedPgSchemaValidationResultFormat { format: String },
}