package com.airlock.iam.common.infrastructure.event;

import com.airlock.iam.base.api.domain.model.event.DomainEvent;
import com.airlock.iam.base.api.domain.model.event.source.EventSource;
import java.util.Map;
import org.mapstruct.Named;

public interface DomainEventMapper {
   EventPayloadData toEventPayloadData(DomainEvent var1);

   EventPayloadSource toEventPayloadSource(EventSource var1);

   @Named("defaultMapping")
   default Map<String, Object> defaultMapping(DomainEvent event) {
      throw new UnmappableTypeException(event.getClass());
   }

   @Named("defaultSourceMapping")
   default Map<String, Object> defaultSourceMapping(EventSource source) {
      throw new UnmappableTypeException(source.getClass());
   }
}
