package com.airlock.iam.common.api.domain.model.event;

import com.airlock.iam.base.api.domain.model.event.EventId;
import java.util.Collections;
import java.util.List;

public record MessageBrokerSendResult(List<EventId> sent, List<EventId> failed) {
   public boolean contains(EventId eventId) {
      return this.sent.contains(eventId) || this.failed.contains(eventId);
   }

   public static MessageBrokerSendResult empty() {
      return new MessageBrokerSendResult(Collections.emptyList(), Collections.emptyList());
   }

   public static MessageBrokerSendResult allFailures(List<EventId> failed) {
      return new MessageBrokerSendResult(Collections.emptyList(), failed);
   }

   public static MessageBrokerSendResult allSucceeded(List<EventId> sent) {
      return new MessageBrokerSendResult(sent, Collections.emptyList());
   }
}
