use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{OptionalNotBlank, RequiredString};
use crate::domain::entity::MailAliasDomain;
pub type MailAliasDomainValidator = EntityValidator<MailAliasDomain>;
pub fn mail_alias_domain_validator() -> MailAliasDomainValidator {
EntityValidator::new()
.rule(RequiredString::new("name", |e: &MailAliasDomain| &e.name))
.rule(OptionalNotBlank::new("catchall_alias", |e: &MailAliasDomain| e.catchall_alias.as_deref()))
.rule(OptionalNotBlank::new("bounce_alias", |e: &MailAliasDomain| e.bounce_alias.as_deref()))
.rule(OptionalNotBlank::new("bounce_alias_email", |e: &MailAliasDomain| e.bounce_alias_email.as_deref()))
.rule(OptionalNotBlank::new("catchall_alias_email", |e: &MailAliasDomain| e.catchall_alias_email.as_deref()))
.rule(OptionalNotBlank::new("from_filter", |e: &MailAliasDomain| e.from_filter.as_deref()))
}