use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{OptionalNotBlank, RequiredString};
use crate::domain::entity::Mailing;
pub type MailingValidator = EntityValidator<Mailing>;
pub fn mailing_validator() -> MailingValidator {
EntityValidator::new()
.rule(RequiredString::new("subject", |e: &Mailing| &e.subject))
.rule(OptionalNotBlank::new("preview", |e: &Mailing| e.preview.as_deref()))
.rule(RequiredString::new("body_html", |e: &Mailing| &e.body_html))
.rule(OptionalNotBlank::new("body_plaintext", |e: &Mailing| e.body_plaintext.as_deref()))
.rule(RequiredString::new("email_from", |e: &Mailing| &e.email_from))
.rule(OptionalNotBlank::new("reply_to", |e: &Mailing| e.reply_to.as_deref()))
}