use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{OptionalNotBlank, RequiredString};
use crate::domain::entity::IntegrationEvent;
pub type IntegrationEventValidator = EntityValidator<IntegrationEvent>;
pub fn integration_event_validator() -> IntegrationEventValidator {
EntityValidator::new()
.rule(RequiredString::new("event_type", |e: &IntegrationEvent| &e.event_type))
.rule(RequiredString::new("external_id", |e: &IntegrationEvent| &e.external_id))
.rule(RequiredString::new("business_key", |e: &IntegrationEvent| &e.business_key))
.rule(RequiredString::new("payload", |e: &IntegrationEvent| &e.payload))
.rule(OptionalNotBlank::new("mapped_ref_type", |e: &IntegrationEvent| e.mapped_ref_type.as_deref()))
.rule(OptionalNotBlank::new("error_detail", |e: &IntegrationEvent| e.error_detail.as_deref()))
}