use thiserror::Error;
pub(crate) type Result<T> = std::result::Result<T, TokenGenerationError>;
#[derive(Debug, Error)]
pub enum TokenGenerationError {
#[error("The provided lifetime '{0}' is out of range 30..3600.")]
InvalidLifetime(i64),
#[error("JsonWebTokenError occurred: {0}")]
JsonWebTokenError(#[from] jsonwebtoken::errors::Error),
#[error("ReqwestError occurred: {0}")]
ReqwestError(#[from] reqwest::Error),
#[error("SerdeError occurred: {0}")]
SerdeError(#[from] serde_json::Error),
#[error("The authentication service returned an error:\nType: {0}, Message: {1}")]
AuthenticationError(String, String),
}