package com.icx.javaproxytunnel.model;

import com.fasterxml.jackson.annotation.JsonProperty;

public class BotExchangeResponse {
    private BotExchangeBranch branchName;
    private PromptSequence nextPromptSequence;
    private IntentInfo intentInfo;
    private NextPromptBehaviors nextPromptBehaviors;
    private CustomPayload customPayload;
    private ErrorDetails errorDetails;
    private String botSessionState;

    @JsonProperty("branchName")
    public BotExchangeBranch getBranchName() { return branchName; }
    @JsonProperty("branchName")
    public void setBranchName(BotExchangeBranch value) { this.branchName = value; }

    @JsonProperty("nextPromptSequence")
    public PromptSequence getNextPromptSequence() { return nextPromptSequence; }
    @JsonProperty("nextPromptSequence")
    public void setNextPromptSequence(PromptSequence value) { this.nextPromptSequence = value; }

    @JsonProperty("intentInfo")
    public IntentInfo getIntentInfo() { return intentInfo; }
    @JsonProperty("intentInfo")
    public void setIntentInfo(IntentInfo value) { this.intentInfo = value; }

    @JsonProperty("nextPromptBehaviors")
    public NextPromptBehaviors getNextPromptBehaviors() { return nextPromptBehaviors; }
    @JsonProperty("nextPromptBehaviors")
    public void setNextPromptBehaviors(NextPromptBehaviors value) { this.nextPromptBehaviors = value; }

    @JsonProperty("customPayload")
    public CustomPayload getCustomPayload() { return customPayload; }
    @JsonProperty("customPayload")
    public void setCustomPayload(CustomPayload value) { this.customPayload = value; }

    @JsonProperty("errorDetails")
    public ErrorDetails getErrorDetails() { return errorDetails; }
    @JsonProperty("errorDetails")
    public void setErrorDetails(ErrorDetails value) { this.errorDetails = value; }

    @JsonProperty("botSessionState")
    public String getBotSessionState() { return botSessionState; }
    @JsonProperty("botSessionState")
    public void setBotSessionState(String value) { this.botSessionState = value; }

    public enum BotExchangeBranch
        {
            DoNotBegin,
            PromptAndCollectNextResponse,
            ReturnControlToScript,
            EndContact,
            AudioInputUntranscribeable,
            //TransferContact, idea for later, with its own custom command params
            //RequestAgent, idea for later, with its own custom command params
            Error,
            DTMFBreakout,
            UserInputTimeout,
            UserInputNotUnderstood
        }
}
