use crate::model::CsdifDocument;
pub fn validate_document(doc: &CsdifDocument) -> Result<(), String> {
if doc.sensors.is_empty() {
return Err("Document must contain at least one sensor.".to_string());
}
for obs in &doc.observations {
if !doc.sensors.iter().any(|s| s.id == obs.sensor_id) {
return Err(format!("Observation refers to unknown sensor ID: {}", obs.sensor_id));
}
}
Ok(())
}