use thiserror::Error;
#[derive(Debug, Error)]
pub enum AuditError {
#[error("storage error: {0}")]
StorageError(String),
#[error("serialization error: {0}")]
SerializationError(String),
#[error("audit entry not found: {entry_id}")]
EntryNotFound {
entry_id: String,
},
#[error("chain integrity violation at entry {entry_id}: {reason}")]
IntegrityViolation {
entry_id: String,
reason: String,
},
#[error("invalid signature on entry {entry_id}")]
InvalidSignature {
entry_id: String,
},
#[error("session not found: {session_id}")]
SessionNotFound {
session_id: String,
},
#[error("crypto error: {0}")]
CryptoError(#[from] astrid_crypto::CryptoError),
}
pub type AuditResult<T> = Result<T, AuditError>;