backbone-bucket 0.3.0

Bucket Bounded Context: File Storage Module for Backbone Framework
Documentation
//! Validator for FileShare entity
//!
//! Generated by metaphor-schema. Do not edit manually.
//!
//! Returns an `EntityValidator<FileShare>` pre-loaded with schema-derived
//! field rules. Extend in the `// <<< CUSTOM` zone.

use backbone_core::{EntityValidator, ValidationErrors, ValidationError};
use backbone_core::{NonNegative, OptionalNotBlank, RequiredString};
use crate::domain::entity::FileShare;

/// Validator type alias for FileShare entities.
pub type FileShareValidator = EntityValidator<FileShare>;

/// Build a validator for FileShare with all schema-defined field rules.
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()))
    // <<< CUSTOM RULES
    // hook rule: token_length (implement in CUSTOM zone)
    // hook rule: token_alphanumeric (implement in CUSTOM zone)
    // hook rule: file_active (implement in CUSTOM zone)
    // hook rule: owner_only_creates (implement in CUSTOM zone)
    // hook rule: future_expiry (implement in CUSTOM zone)
    // hook rule: positive_downloads (implement in CUSTOM zone)
    // hook rule: user_share_requires_recipients (implement in CUSTOM zone)
    // hook rule: cannot_modify_inactive (implement in CUSTOM zone)
    // END CUSTOM RULES
}

// <<< CUSTOM
// END CUSTOM