#ifndef ISHOPITEM_H #define ISHOPITEM_H #include "shop_global.h" #include #include #include #include #include class SHOPSHARED_EXPORT IShopItem : public QObject { Q_OBJECT Q_PROPERTY(QString code READ code) Q_PROPERTY(QString name READ name) Q_PROPERTY(QString shortName READ shortName) Q_PROPERTY(QDecDouble unitPrice READ unitPrice) Q_PROPERTY(Enums::VatType vatType READ vatType) Q_PROPERTY(bool favorite READ favorite) public: explicit IShopItem(QObject* parent = nullptr); ~IShopItem() override = default; virtual long id() const { return {}; } virtual QString name() { return {}; } virtual QString code() { return {}; } virtual QString shortName() { return {}; } virtual QDecDouble unitPrice() { return {}; } virtual Enums::VatType vatType() { return {}; } virtual QString pluginId() const { return {}; } virtual QString color() { return {}; } virtual QString category() { return {}; } virtual bool favorite() { return false; } }; inline bool operator==(const IShopItem& lhs, const IShopItem& rhs) { return lhs.id() == rhs.id() && lhs.pluginId() == rhs.pluginId(); } using IShopItemPtr = QSharedPointer; QX_REGISTER_HPP_SHOP(IShopItem, QObject, 0) #endif // ISHOPITEM_H