#pragma once

#include "types/collection_duration.hpp"
#include "types/collection_time_scope.hpp"
#include "types/duration_types.hpp"
#include "types/operation_type.hpp"

#include <memory>
#include <optional>
#include <vector>

namespace metrics
{

class CollectionData
{
  public:
    virtual ~CollectionData() = default;

    virtual std::optional<double> update(Milliseconds timestamp) = 0;
    virtual double update(Milliseconds timestamp, double value) = 0;
    bool updateLastValue(double value);

  private:
    std::optional<double> lastValue;
};

std::vector<std::unique_ptr<CollectionData>>
    makeCollectionData(size_t size, OperationType, CollectionTimeScope,
                       CollectionDuration);

} // namespace metrics
