use thiserror::Error;
#[derive(Error, Debug)]
pub enum FlowError {
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Config parse error: {0}")]
ConfigParse(#[from] toml::de::Error),
#[error("Git error: {0}")]
Git(String),
#[error("Tmux error: {0}")]
Tmux(String),
#[error("Project not found: {0}")]
ProjectNotFound(String),
#[error("Database error: {0}")]
Database(String),
#[error("Not found: {0}")]
NotFound(String),
#[error("Bad request: {0}")]
BadRequest(String),
#[error("Conflict: {0}")]
Conflict(String),
#[error("Parse error: {0}")]
Parse(String),
#[error("Timeout: {0}")]
Timeout(String),
#[error("Cycle detected: {0}")]
CycleDetected(String),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Server error: {0}")]
Server(String),
}