use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{OptionalNotBlank};
use crate::domain::entity::AccessLog;
pub type AccessLogValidator = EntityValidator<AccessLog>;
pub fn access_log_validator() -> AccessLogValidator {
EntityValidator::new()
.rule(OptionalNotBlank::new("ip_address", |e: &AccessLog| e.ip_address.as_deref()))
.rule(OptionalNotBlank::new("user_agent", |e: &AccessLog| e.user_agent.as_deref()))
.rule(OptionalNotBlank::new("referer", |e: &AccessLog| e.referer.as_deref()))
.rule(OptionalNotBlank::new("country_code", |e: &AccessLog| e.country_code.as_deref()))
.rule(OptionalNotBlank::new("city", |e: &AccessLog| e.city.as_deref()))
.rule(OptionalNotBlank::new("error_message", |e: &AccessLog| e.error_message.as_deref()))
}