use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::Issue;
pub type IssueValidator = EntityValidator<Issue>;
pub fn issue_validator() -> IssueValidator {
EntityValidator::new()
.rule(RequiredString::new("subject", |e: &Issue| &e.subject))
.rule(OptionalNotBlank::new("description", |e: &Issue| e.description.as_deref()))
.rule(NonNegative::new("total_paused_mins", |e: &Issue| e.total_paused_mins as i64))
}