use super::ErrorResponse; pub enum ChatError { ModelNotSupported(String), EmptyMessages, NoTokens, RequestFailed(String), Unauthorized, } impl ChatError { pub fn to_json(&self) -> ErrorResponse { let (error, message) = match self { ChatError::ModelNotSupported(model) => ( "model_not_supported", format!("Model '{}' is not supported", model), ), ChatError::EmptyMessages => ( "empty_messages", "Message array cannot be empty".to_string(), ), ChatError::NoTokens => ("no_tokens", "No available tokens".to_string()), ChatError::RequestFailed(err) => ("request_failed", format!("Request failed: {}", err)), ChatError::Unauthorized => ("unauthorized", "Invalid authorization token".to_string()), }; ErrorResponse { status: super::ApiStatus::Error, code: None, error: Some(error.to_string()), message: Some(message), } } }