use thiserror::Error;
#[derive(Debug, Error)]
pub enum AwaError {
#[error("job not found: {id}")]
JobNotFound { id: i64 },
#[error("callback not found: {callback_id}")]
CallbackNotFound { callback_id: String },
#[error("unique conflict")]
UniqueConflict { constraint: Option<String> },
#[error("schema not migrated: expected version {expected}, found {found}")]
SchemaNotMigrated { expected: i32, found: i32 },
#[error("unknown job kind: {kind}")]
UnknownJobKind { kind: String },
#[error("validation error: {0}")]
Validation(String),
#[error("serialization error: {0}")]
Serialization(#[from] serde_json::Error),
#[error("database error: {0}")]
Database(#[source] sqlx::Error),
}
impl From<sqlx::Error> for AwaError {
fn from(err: sqlx::Error) -> Self {
AwaError::Database(err)
}
}