evaluateRules method
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;
}