use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{OptionalNotBlank, RequiredString};
use crate::domain::entity::MailTrackingValue;
pub type MailTrackingValueValidator = EntityValidator<MailTrackingValue>;
pub fn mail_tracking_value_validator() -> MailTrackingValueValidator {
EntityValidator::new()
.rule(RequiredString::new("field", |e: &MailTrackingValue| &e.field))
.rule(OptionalNotBlank::new("field_desc", |e: &MailTrackingValue| e.field_desc.as_deref()))
.rule(OptionalNotBlank::new("field_type", |e: &MailTrackingValue| e.field_type.as_deref()))
.rule(OptionalNotBlank::new("old_value_text", |e: &MailTrackingValue| e.old_value_text.as_deref()))
.rule(OptionalNotBlank::new("new_value_text", |e: &MailTrackingValue| e.new_value_text.as_deref()))
}