use thiserror::Error;
#[derive(Error, Debug)]
pub enum AdminError {
#[error("Model not found: {0}")]
ModelNotFound(String),
#[error("Record not found: {model}/{id}")]
RecordNotFound { model: String, id: String },
#[error("Validation error: {0}")]
Validation(String),
#[error("Permission denied: {0}")]
PermissionDenied(String),
#[error("Database error: {0}")]
Database(String),
#[error("Template error: {0}")]
Template(String),
#[error("Configuration error: {0}")]
Config(String),
#[error("Serialization error: {0}")]
Serialization(String),
}
impl From<serde_json::Error> for AdminError {
fn from(err: serde_json::Error) -> Self {
AdminError::Serialization(err.to_string())
}
}
pub type AdminResult<T> = Result<T, AdminError>;