1use thiserror::Error;
2
3#[derive(Error, Debug)]
5pub enum Error {
6 #[error("Network error: {0}")]
8 NetworkError(#[from] reqwest::Error),
9
10 #[error("JSON error: {0}")]
12 JsonError(#[from] serde_json::Error),
13
14 #[error("API error: {status_code} - {message}")]
16 ApiError {
17 status_code: u16,
18 message: String,
19 error_code: Option<String>,
20 },
21
22 #[error("Missing required parameter: {0}")]
24 MissingParameter(String),
25
26 #[error("Invalid parameter value: {0}")]
28 InvalidParameter(String),
29
30 #[error("Invalid webhook signature")]
32 InvalidSignature,
33
34 #[error("{0}")]
36 Other(String),
37}