use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::ContentHash;
pub type ContentHashValidator = EntityValidator<ContentHash>;
pub fn content_hash_validator() -> ContentHashValidator {
EntityValidator::new()
.rule(RequiredString::new("hash", |e: &ContentHash| &e.hash))
.rule(RequiredString::new("storage_key", |e: &ContentHash| &e.storage_key))
.rule(NonNegative::new("reference_count", |e: &ContentHash| e.reference_count as i64))
.rule(OptionalNotBlank::new("fingerprint", |e: &ContentHash| e.fingerprint.as_deref()))
}