// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System; using System.Collections.Generic; using System.Threading.Tasks; using Squidex.Domain.Apps.Core.Rules; using Squidex.Domain.Apps.Core.Rules.EnrichedEvents; using Squidex.Domain.Apps.Events; using Squidex.Infrastructure; using Squidex.Infrastructure.EventSourcing; namespace Squidex.Domain.Apps.Core.HandleRules { public interface IRuleTriggerHandler { Type TriggerType { get; } bool CanCreateSnapshotEvents { get; } IAsyncEnumerable CreateSnapshotEvents(RuleTrigger trigger, DomainId appId); Task> CreateEnrichedEventsAsync(Envelope @event); bool Trigger(EnrichedEvent @event, RuleTrigger trigger); bool Trigger(AppEvent @event, RuleTrigger trigger, DomainId ruleId); } }