use crate::model::ViolationDetails;
use versa::schema::current::SCHEMA_VERSION;
pub fn schema_version_should_be_current<'a>(
data: &'a serde_json::Value,
) -> Option<ViolationDetails> {
let schema_version = data.get("schema_version").and_then(|sv| sv.as_str());
let Some(schema_version) = schema_version else {
return Some(ViolationDetails { details: None });
};
if schema_version != SCHEMA_VERSION {
return Some(ViolationDetails {
details: Some(format!(
"schema_version={}, current={}",
schema_version, SCHEMA_VERSION
)),
});
}
None
}