use thiserror::Error;
#[derive(Debug, Error)]
pub enum CloudflareError {
#[allow(dead_code)]
#[error("API error: {message} (code: {code})")]
ApiError {
code: i64,
message: String,
},
#[error("API errors: {}", .0.join(", "))]
ApiErrors(Vec<String>),
#[error("HTTP request failed with status {status}: {body}")]
HttpError {
status: u16,
body: String,
},
#[error("Failed to parse API response: {0}")]
ParseError(#[from] serde_json::Error),
#[error("Failed to send request: {0}")]
RequestError(#[from] reqwest::Error),
#[error("Cannot update record: no ID provided")]
MissingRecordId,
#[error("No result returned from API")]
NoResult,
}
pub type CloudflareResult<T> = Result<T, CloudflareError>;