use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::PosManagerPin;
pub type PosManagerPinValidator = EntityValidator<PosManagerPin>;
pub fn pos_manager_pin_validator() -> PosManagerPinValidator {
EntityValidator::new()
.rule(RequiredString::new("pin_hash", |e: &PosManagerPin| &e.pin_hash))
.rule(NonNegative::new("failed_attempts", |e: &PosManagerPin| e.failed_attempts as i64))
.rule(OptionalNotBlank::new("last_attempt_ip", |e: &PosManagerPin| e.last_attempt_ip.as_deref()))
}