package org.texttechnologylab.project.gruppe_05_1.xml.speeches.Interfaces;

import org.apache.uima.UIMAException;
import org.apache.uima.jcas.JCas;
import org.texttechnologylab.project.gruppe_05_1.xml.speeches.enums.MongoDBEntryType;

import java.util.List;

public interface Speech {
    /**
     * Returns the speech ID.
     *
     * @return The speech ID.
     */
    int getSpeechId();

    /**
     * Returns the type of the MongoDB entry.
     *
     * @return The type of the MongoDB entry.
     */
    MongoDBEntryType getType();

    /**
     * Returns the agenda item ID.
     *
     * @return The agenda item ID.
     */
    int getAgendaItemId();

    /**
     * Returns the speaker ID.
     *
     * @return The speaker ID.
     */
    int getSpeakerId();

    /**
     * Returns the speaker name.
     *
     * @return The speaker name.
     */
    String getSpeakerName();

    /**
     * Returns the fraction.
     *
     * @return The fraction.
     */
    String getFraction();

    /**
     * Returns the session ID.
     *
     * @return The session ID.
     */
    int getSessionId();

    /**
     * Returns the session Key.
     *
     * @return The session Key.
     */
    String getSpeechKey();

    /**
     * Returns the speech contents.
     *
     * @return The speech contents.
     */
    List<Content> getSpeechContents();
    /**
     * Adds a speaker to the speech.
     * @param speaker The speaker to add.
     */
    void addContent(Content speaker);

    /**
     * Returns the HTML representation of the agenda item.
     *
     * @return The HTML representation of the agenda item.
     */
    String toHTML();

    String getFullText();

    JCas toCas() throws UIMAException;
}
