#ifndef VOUCHER_H #define VOUCHER_H #include #include #include #include #include #include #include #include "voucheritem.h" #pragma db object class Voucher : public QObject { Q_OBJECT Q_PROPERTY(QString name READ name WRITE setName) Q_PROPERTY(QString description READ description WRITE setDescription) Q_PROPERTY(QSharedPointer contact READ contact WRITE setContact) Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice) Q_ENUMS(VoucherStatus) Q_PROPERTY(VoucherStatus status READ status WRITE setStatus) public: explicit Voucher(QObject *parent = 0); enum VoucherStatus { NEW, TEMPORARY, NOT_PAID, PAID }; int id() const; void setId(int id); QString name() const; void setName(const QString &name); QString description() const; void setDescription(const QString &description); QSharedPointer contact() const; void setContact(const QSharedPointer &contact); VoucherStatus status() const; void setStatus(const VoucherStatus &status); QDecDouble totalPrice() const; void setTotalPrice(QDecDouble totalPrice); QList > items() const; void setItems(const QList > &items); void addItem(QSharedPointer item); void clearItems(); private: friend class odb::access; #pragma db id auto int m_id; QString m_name; QString m_description; QSharedPointer m_contact; int m_totalPrice; QOdbList > m_items; VoucherStatus m_status; }; #endif // VOUCHER_H