#ifndef ITEMSOURCE_H
#define ITEMSOURCE_H

#include <QObject>
#include <vector>
#include <memory>

#include "item.h"

class ItemSource : public QObject
{
	Q_OBJECT
public:
	explicit ItemSource(QObject *parent = nullptr);

public slots:
	virtual void refresh() = 0;

signals:
	void gotItems(std::vector<ItemAddRequest> items);
	void requestReplaceItems(std::vector<std::shared_ptr<Item>> items);
	void updateItems(std::vector<ItemUpdateRequest> updates);
};

#endif // ITEMSOURCE_H
