backbone-digest 0.3.0

KPI digests — the periodic KPI-email engine: a declarative name-keyed KPI registry other modules extend, per-recipient fenced rendering with declared (never row-count) KPI drops, the anti-spam slowdown ladder, a shared tips carousel, and a daily plain-pull cron whose due-date column is the queue (Odoo digest port)
//! Specifications for DigestSubscription aggregate
//!
//! Generated by metaphor-schema. Do not edit manually.
//!
//! Entity-specific predicate structs implementing `backbone_core::Specification`.
//! Combinators (AND/OR/NOT) are available via the trait methods — no duplication.

use backbone_core::Specification;
use crate::domain::entity::DigestSubscription;

pub use backbone_core::{AndSpecification, OrSpecification, NotSpecification};

// ─── Entity-specific predicates ──────────────────────────────────────────────
//
// Add entity-specific predicate structs below.
// Each predicate implements `Specification<DigestSubscription>` and can be combined
// using `.and()`, `.or()`, `.not()` from the trait.
//
// Example:
//   let spec = ActiveSpec.and(VerifiedSpec);
//   if spec.is_satisfied_by(&entity) { ... }

// <<< CUSTOM
// Add predicate structs here. Example:
//
// pub struct ActiveDigestSubscriptionSpec;
// impl Specification<DigestSubscription> for ActiveDigestSubscriptionSpec {
//     fn is_satisfied_by(&self, e: &DigestSubscription) -> bool {
//         // e.is_active
//         todo!()
//     }
// }
// END CUSTOM