package com.ing.baker.tutorials.interactions

import com.ing.baker.recipe.annotations.FiresEvent
import com.ing.baker.recipe.annotations.RequiresIngredient
import com.ing.baker.recipe.javadsl.Interaction
import com.ing.baker.tutorials.events.ShipGoodsEvents.GoodsShipped
import com.ing.baker.tutorials.model.CustomerInfo

interface ShipGoods : Interaction {

    @FiresEvent(oneOf = [GoodsShipped::class])
    fun apply(
        @RequiresIngredient("goods") goods: String,
        @RequiresIngredient("customerInfo") customerInfo: CustomerInfo
    ): GoodsShipped
}