#pragma once

#include "foundation/diagnostics/Metrics.h"

namespace ta::features::items
{
    struct ItemDiagnosticsSnapshot final
    {
        ta::foundation::diagnostics::RequestConsumeSnapshot actions;
    };

    class ItemDiagnostics final
    {
    public:
        void mark_action_requested() noexcept { actions_.mark_requested(); }
        void mark_action_consumed() noexcept { actions_.mark_consumed(); }
        void reset() noexcept { actions_.reset(); }
        [[nodiscard]] ItemDiagnosticsSnapshot snapshot() const noexcept { return {actions_.snapshot()}; }

    private:
        ta::foundation::diagnostics::RequestConsumeMetrics actions_;
    };
}
