#ifndef BASEMODEL_H #define BASEMODEL_H #include #include class BeerService; class BaseModel : public QObject { Q_OBJECT Q_PROPERTY(QString entity READ entity CONSTANT) public: explicit BaseModel(const QString &entity, QObject *parent = nullptr); virtual ~BaseModel(); QString entity() const; QVariantList items() const; QVariantMap item(const QString &itemId) const; QVariant itemProperty(const QString &itemId, const QString &propertyName, const QVariant &def = QVariant{}) const; void addItem(const QVariantMap &item) const; void deleteItem(const QString &itemId) const; void modifyItem(const QString &itemId, const QVariantMap &properties) const; public slots: void created(const QVariant &data); void modified(const QVariant &data); void deleted(const QVariant &data); void received(const QVariant &data); signals: void dataChanged(); private: BeerService *service() const; QVariantMap m_data; QString m_entity; }; #endif // BASEMODEL_H