// This file generated by libqtelegram-code-generator.
// You can download it from: https://github.com/Aseman-Land/libqtelegram-code-generator
// DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

#ifndef LQTG_TYPE_INVOICE_OBJECT
#define LQTG_TYPE_INVOICE_OBJECT

#include "telegramtypeqobject.h"
#include "telegram/types/invoice.h"

#include <QPointer>

class LIBQTELEGRAMSHARED_EXPORT InvoiceObject : public TelegramTypeQObject
{
    Q_OBJECT
    Q_ENUMS(InvoiceClassType)
    Q_PROPERTY(QString currency READ currency WRITE setCurrency NOTIFY currencyChanged)
    Q_PROPERTY(bool emailRequested READ emailRequested WRITE setEmailRequested NOTIFY emailRequestedChanged)
    Q_PROPERTY(qint32 flags READ flags WRITE setFlags NOTIFY flagsChanged)
    Q_PROPERTY(bool flexible READ flexible WRITE setFlexible NOTIFY flexibleChanged)
    Q_PROPERTY(bool nameRequested READ nameRequested WRITE setNameRequested NOTIFY nameRequestedChanged)
    Q_PROPERTY(bool phoneRequested READ phoneRequested WRITE setPhoneRequested NOTIFY phoneRequestedChanged)
    Q_PROPERTY(QList<LabeledPrice> prices READ prices WRITE setPrices NOTIFY pricesChanged)
    Q_PROPERTY(bool shippingAddressRequested READ shippingAddressRequested WRITE setShippingAddressRequested NOTIFY shippingAddressRequestedChanged)
    Q_PROPERTY(bool test READ test WRITE setTest NOTIFY testChanged)
    Q_PROPERTY(Invoice core READ core WRITE setCore NOTIFY coreChanged)
    Q_PROPERTY(quint32 classType READ classType WRITE setClassType NOTIFY classTypeChanged)

public:
    enum InvoiceClassType {
        TypeInvoice
    };

    InvoiceObject(const Invoice &core, QObject *parent = 0);
    InvoiceObject(QObject *parent = 0);
    virtual ~InvoiceObject();

    void setCurrency(const QString &currency);
    QString currency() const;

    void setEmailRequested(bool emailRequested);
    bool emailRequested() const;

    void setFlags(qint32 flags);
    qint32 flags() const;

    void setFlexible(bool flexible);
    bool flexible() const;

    void setNameRequested(bool nameRequested);
    bool nameRequested() const;

    void setPhoneRequested(bool phoneRequested);
    bool phoneRequested() const;

    void setPrices(const QList<LabeledPrice> &prices);
    QList<LabeledPrice> prices() const;

    void setShippingAddressRequested(bool shippingAddressRequested);
    bool shippingAddressRequested() const;

    void setTest(bool test);
    bool test() const;

    void setClassType(quint32 classType);
    quint32 classType() const;

    void setCore(const Invoice &core);
    Invoice core() const;

    InvoiceObject &operator =(const Invoice &b);
    bool operator ==(const Invoice &b) const;

Q_SIGNALS:
    void coreChanged();
    void classTypeChanged();
    void currencyChanged();
    void emailRequestedChanged();
    void flagsChanged();
    void flexibleChanged();
    void nameRequestedChanged();
    void phoneRequestedChanged();
    void pricesChanged();
    void shippingAddressRequestedChanged();
    void testChanged();

private Q_SLOTS:

private:
    Invoice m_core;
};

#endif // LQTG_TYPE_INVOICE_OBJECT
