package com.oguerreiro.resilient.activities.period.process;

import java.util.concurrent.CompletableFuture;

import com.oguerreiro.resilient.activity.Activity;
import com.oguerreiro.resilient.activity.GenericGuide;
import com.oguerreiro.resilient.activity.GenericResult;
import com.oguerreiro.resilient.domain.Period;
import com.oguerreiro.resilient.domain.PeriodVersion;
import com.oguerreiro.resilient.domain.enumeration.PeriodStatus;

public interface PeriodProcessOutputsActivity extends Activity<GenericResult, GenericGuide<Period>> {
  public static final String GUIDE_OTHERVALUE_PERIODVERSION = "PERIODVERSION";

  CompletableFuture<GenericResult> doInternalActivityAsync(GenericGuide<Period> guide);

  Period updateStateWithNewTransaction(Period period, PeriodStatus periodStatus, PeriodVersion newPeriodVersion);
}
