package org.studiorailgun.ai.conversation.evaluators.goal;

import org.studiorailgun.ai.conversation.evaluators.query.QueryData;

/**
 * Data about the AI's goal in the conversation
 */
public class GoalData {
    
    /**
     * A goal the ai can have for the conversation
     */
    public static enum ConversationGoal {

        /**
         * Say a greeting
         */
        GREET,

        /**
         * Answer a question
         */
        TRANSMIT_INFO,

        /**
         * Queries for a piece of information
         */
        QUERY_INFO,

        /**
         * Prompt a conversation-opening question
         */
        OPENER,
    }

    /**
     * The goal of the conversation
     */
    ConversationGoal goal;

    /**
     * The query data
     */
    QueryData queryData;

    /**
     * The query data for the conversation
     */
    public GoalData(){
        this.queryData = new QueryData();
    }

    /**
     * Gets the current goal
     * @return The goal
     */
    public ConversationGoal getGoal() {
        return goal;
    }

    /**
     * Sets the current goal
     * @param goal The goal
     */
    public void setGoal(ConversationGoal goal) {
        this.goal = goal;
    }

    /**
     * Gets the query data
     * @return The query data
     */
    public QueryData getQueryData() {
        return queryData;
    }

}
