use thiserror::Error;
#[derive(Debug, Error, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub enum DomainError {
#[error(
"Invalid period format: '{format}' - expected formats like '2023Q4', '2023', 'FY2023', '2023-12-31', or '12/31/2023'"
)]
InvalidPeriodFormat {
format: String,
},
#[error("Invalid exchange value: '{value}'")]
InvalidExchangeValue {
value: String,
},
#[error("Invalid ISIN: '{value}'")]
InvalidIsin {
value: String,
},
#[error("Invalid FIGI: '{value}'")]
InvalidFigi {
value: String,
},
#[error("Invalid symbol: '{value}'")]
InvalidSymbol {
value: String,
},
}