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

import org.texttechnologylab.project.gruppe_05_1.xml.speeches.enums.MongoDBEntryType;

import java.util.List;

public interface Session {
    /**
     * Returns the id of the session.
     *
     * @return the id of the session
     */
    int getId();

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

    /**
     * Returns the legislative period of the session.
     *
     * @return the legislative period of the session
     */
    String getLegislativePeriod();

    /**
     * Returns the date and time of the session.
     *
     * @return the date and time of the session
     */
    String getDateTime();

    /**
     * Returns the end time of the session.
     *
     * @return the end time of the session
     */
    String getEndTime();

    /**
     * Returns the agenda items of the session.
     *
     * @return the agenda items of the session
     */
    List<AgendaItem> getAgendaItems();

    /**
     * Adds an agenda item to the session.
     * @param item The agenda item to add.
     */
    void addAgendaItem(AgendaItem item);

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