evaluateRules method

Future<bool> evaluateRules()

Evaluate all targeting rules with caching

Implementation

Future<bool> evaluateRules() async {
  final cacheKey = _generateCacheKey();

  // Check cache
  final cachedResult = _cache.get(cacheKey);
  if (cachedResult != null) return cachedResult as bool;

  // Evaluate parent rules
  if (parent != null && !await parent!.evaluateRules()) {
    _cache.set(cacheKey, false, cacheDuration);
    return false;
  }

  // Evaluate current rules
  bool result = rules.every((rule) => rule.evaluate(attributes));
  _cache.set(cacheKey, result, cacheDuration);
  return result;
}