#pragma once

#include "application/contracts/IKeyInput.h"
#include "application/contracts/UiCommands.h"
#include "application/contracts/UiReadModel.h"
#include "features/esp/contracts/IEspQueries.h"
#include "features/items/contracts/IItemCommands.h"
#include "features/items/contracts/IItemQueries.h"
#include "features/quests/contracts/IQuestCommands.h"
#include "features/quests/contracts/IQuestQueries.h"
#include "features/watermark/IWatermarkQueries.h"

namespace ta::presentation
{
    struct MenuPorts final
    {
        ta::ui::UiReadModel& read_model;
        ta::ui::UiCommands& commands;
        ta::application::IKeyInput& key_input;
        ta::features::items::contracts::IItemQueries& item_queries;
        ta::features::items::contracts::IItemCommands& item_commands;
        ta::features::esp::contracts::IEspQueries& esp_queries;
        ta::features::quests::contracts::IQuestQueries& quest_queries;
        ta::features::quests::contracts::IQuestCommands& quest_commands;
        ta::features::watermark::IWatermarkQueries& watermark_queries;
    };
}
