use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[error("HTTP request failed: {0}")]
Http(#[from] reqwest::Error),
#[error("Invalid header value: {0}")]
InvalidHeader(#[from] reqwest::header::InvalidHeaderValue),
#[error("HTTP error {status} for {url}")]
HttpStatus {
status: reqwest::StatusCode,
url: String,
},
#[error("Cloudflare challenge detected. The site requires browser verification.")]
CloudflareChallenge,
#[error("Calendar table not found in response. Page structure may have changed.")]
CalendarNotFound,
#[error("Invalid CSS selector: {0}")]
InvalidSelector(String),
}
pub type Result<T> = std::result::Result<T, Error>;