#pragma once

#include "adapters/config/WatermarkConfigAdapter.h"
#include "features/watermark/WatermarkFeature.h"
#include "bootstrap/modules/ModulePorts.h"

namespace ta::bootstrap::modules
{
    class WatermarkModule final
    {
    public:
        WatermarkModule();

        [[nodiscard]] const ModulePorts& ports() const noexcept { return ports_; }
        [[nodiscard]] ta::features::watermark::IWatermarkQueries& queries() noexcept;

    private:
        ta::adapters::config::WatermarkConfigAdapter settings_;
        ta::features::watermark::WatermarkFeature feature_;
        ModulePorts ports_;
    };
}
