use thiserror::Error;
#[derive(Debug, Error)]
pub enum BitemporalError {
#[error("record not found: {0}")]
RecordNotFound(String),
#[error("duplicate record ID: {0}")]
DuplicateRecordId(String),
#[error("invalid time range: {0}")]
InvalidTimeRange(String),
#[error("no prior record to supersede for ID: {0}")]
NoPriorRecord(String),
#[error("database error: {0}")]
DatabaseError(String),
#[error("serialization error: {0}")]
SerializationError(String),
}