use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::FileShare;
pub type FileShareValidator = EntityValidator<FileShare>;
pub fn file_share_validator() -> FileShareValidator {
EntityValidator::new()
.rule(RequiredString::new("token", |e: &FileShare| &e.token))
.rule(OptionalNotBlank::new("password_hash", |e: &FileShare| e.password_hash.as_deref()))
.rule(NonNegative::new("download_count", |e: &FileShare| e.download_count as i64))
.rule(OptionalNotBlank::new("message", |e: &FileShare| e.message.as_deref()))
}