#pragma once
#include "../domain/trench.h"
#include <vector>

class Repository {
    protected:
        std::vector<Trench> _data;
    public:
        Repository() = default;
        ~Repository() = default;
        virtual void add(Trench trench) = 0;
        virtual void remove(Trench trench) = 0;
        virtual void remove(int index) = 0;
        virtual int get(Trench trench) = 0;
        virtual Trench& operator[](int index) = 0;
        virtual void update(int index, int price, int quantity) = 0;
        virtual int size() = 0;
        virtual std::vector<Trench>::iterator begin() = 0;
        virtual std::vector<Trench>::iterator end() = 0;

};