use crate::SessionId;
use thiserror::Error;
#[derive(Error, Debug, Clone)]
pub enum DomainError {
#[error("Session not found: {session_id}")]
SessionNotFound { session_id: SessionId },
#[error("Session already exists: {session_id}")]
SessionAlreadyExists { session_id: SessionId },
#[error("Invalid {field}: {value} (expected {expected})")]
InvalidFieldValue {
field: String,
value: String,
expected: String,
},
#[error("Failed to parse {field}: {reason}")]
ParseError { field: String, reason: String },
}
pub type DomainResult<T> = Result<T, DomainError>;