/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 */

package com.microsoft.azure.cognitiveservices.knowledge.qnamaker.models;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Prompt for an answer.
 */
public class PromptDTO {
    /**
     * Index of the prompt - used in ordering of the prompts.
     */
    @JsonProperty(value = "displayOrder")
    private Integer displayOrder;

    /**
     * Qna id corresponding to the prompt - if QnaId is present, QnADTO object
     * is ignored.
     */
    @JsonProperty(value = "qnaId")
    private Integer qnaId;

    /**
     * QnADTO - Either QnaId or QnADTO needs to be present in a PromptDTO
     * object.
     */
    @JsonProperty(value = "qna")
    private PromptDTOQna qna;

    /**
     * Text displayed to represent a follow up question prompt.
     */
    @JsonProperty(value = "displayText")
    private String displayText;

    /**
     * Get the displayOrder value.
     *
     * @return the displayOrder value
     */
    public Integer displayOrder() {
        return this.displayOrder;
    }

    /**
     * Set the displayOrder value.
     *
     * @param displayOrder the displayOrder value to set
     * @return the PromptDTO object itself.
     */
    public PromptDTO withDisplayOrder(Integer displayOrder) {
        this.displayOrder = displayOrder;
        return this;
    }

    /**
     * Get the qnaId value.
     *
     * @return the qnaId value
     */
    public Integer qnaId() {
        return this.qnaId;
    }

    /**
     * Set the qnaId value.
     *
     * @param qnaId the qnaId value to set
     * @return the PromptDTO object itself.
     */
    public PromptDTO withQnaId(Integer qnaId) {
        this.qnaId = qnaId;
        return this;
    }

    /**
     * Get the qna value.
     *
     * @return the qna value
     */
    public PromptDTOQna qna() {
        return this.qna;
    }

    /**
     * Set the qna value.
     *
     * @param qna the qna value to set
     * @return the PromptDTO object itself.
     */
    public PromptDTO withQna(PromptDTOQna qna) {
        this.qna = qna;
        return this;
    }

    /**
     * Get the displayText value.
     *
     * @return the displayText value
     */
    public String displayText() {
        return this.displayText;
    }

    /**
     * Set the displayText value.
     *
     * @param displayText the displayText value to set
     * @return the PromptDTO object itself.
     */
    public PromptDTO withDisplayText(String displayText) {
        this.displayText = displayText;
        return this;
    }

}
