use thiserror::Error;
#[derive(Debug, Error)]
pub enum TripoError {
#[error("API key is missing. Please provide it or set the TRIPO_API_KEY environment variable.")]
MissingApiKey,
#[error("Network request failed: {0}")]
RequestError(#[from] reqwest::Error),
#[error("Failed to parse API response: {0}")]
ResponseParseError(#[from] serde_json::Error),
#[error("API request failed: {message}")]
ApiError { message: String },
#[error("URL parsing failed: {0}")]
UrlError(#[from] url::ParseError),
#[error("File I/O error: {0}")]
IoError(#[from] std::io::Error),
#[error("File upload stream could not be created: {0}")]
UploadStreamError(#[from] aws_sdk_s3::primitives::ByteStreamError),
}