#[derive(Debug, thiserror::Error)]
pub enum AuthError {
#[error("invalid passphrase")]
InvalidPassphrase,
#[error("session expired or not found")]
SessionExpired,
#[error("rate limited: too many login attempts")]
RateLimited,
#[error("passphrase storage error: {message}")]
Storage { message: String },
#[error("session database error: {source}")]
Database {
#[source]
source: sqlx::Error,
},
#[error("hashing error: {message}")]
HashError { message: String },
#[error("instance already claimed")]
AlreadyClaimed,
}