1use thiserror::Error;
4
5#[derive(Error, Debug)]
7pub enum AdminError {
8 #[error("Model not found: {0}")]
10 ModelNotFound(String),
11
12 #[error("Record not found: {model}/{id}")]
14 RecordNotFound { model: String, id: String },
15
16 #[error("Validation error: {0}")]
18 Validation(String),
19
20 #[error("Permission denied: {0}")]
22 PermissionDenied(String),
23
24 #[error("Database error: {0}")]
26 Database(String),
27
28 #[error("Template error: {0}")]
30 Template(String),
31
32 #[error("Configuration error: {0}")]
34 Config(String),
35
36 #[error("Serialization error: {0}")]
38 Serialization(String),
39}
40
41impl From<serde_json::Error> for AdminError {
42 fn from(err: serde_json::Error) -> Self {
43 AdminError::Serialization(err.to_string())
44 }
45}
46
47pub type AdminResult<T> = Result<T, AdminError>;
49