use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::CostCenter;
pub type CostCenterValidator = EntityValidator<CostCenter>;
pub fn cost_center_validator() -> CostCenterValidator {
EntityValidator::new()
.rule(RequiredString::new("code", |e: &CostCenter| &e.code))
.rule(RequiredString::new("name", |e: &CostCenter| &e.name))
.rule(OptionalNotBlank::new("description", |e: &CostCenter| e.description.as_deref()))
.rule(NonNegative::new("level", |e: &CostCenter| e.level as i64))
}