/**
 * OpenAPI Generated Petstore Client
 *
 * This is a sample of Petstore application.
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/*
 * order.h
 *
 * An order for a pets from the pet store
 */

#ifndef ORDER_H
#define ORDER_H

#include "cmakegeneratedclientexports.h"
#include "qoaiobject.h"


#include <QDateTime>
#include <QString>

namespace QtOpenAPI {

class CMAKEGENERATEDCLIENT_EXPORT Order : public QtOpenApiCommon::QOAIObject {
    Q_GADGET

    Q_PROPERTY(qint64 id READ getId WRITE setId)
    Q_PROPERTY(qint64 petId READ getPetId WRITE setPetId)
    Q_PROPERTY(qint32 quantity READ getQuantity WRITE setQuantity)
    Q_PROPERTY(QDateTime shipDate READ getShipDate WRITE setShipDate)
    Q_PROPERTY(QString status READ getStatus WRITE setStatus)
    Q_PROPERTY(bool complete READ isComplete WRITE setComplete)
public:
    Order();
    Q_IMPLICIT Order(const QString &json);
    ~Order() override;

    QString asJson() const override;
    QJsonValue asJsonValue() const override;
    void fromJsonValue(const QJsonValue &json) override;
    void fromJson(const QString &jsonString) override;

    qint64 getId() const;
    void setId(const qint64 &id);
    bool isIdValueSet() const;
    bool isIdValueValid() const;

    qint64 getPetId() const;
    void setPetId(const qint64 &petId);
    bool isPetIdValueSet() const;
    bool isPetIdValueValid() const;

    qint32 getQuantity() const;
    void setQuantity(const qint32 &quantity);
    bool isQuantityValueSet() const;
    bool isQuantityValueValid() const;

    QDateTime getShipDate() const;
    void setShipDate(const QDateTime &shipDate);
    bool isShipDateValueSet() const;
    bool isShipDateValueValid() const;

    QString getStatus() const;
    void setStatus(const QString &status);
    bool isStatusValueSet() const;
    bool isStatusValueValid() const;

    bool isComplete() const;
    void setComplete(const bool &complete);
    bool isCompleteValueSet() const;
    bool isCompleteValueValid() const;

    bool isSet() const override;
    bool isValid() const override;

private:
    void initializeModel();
    qint64 m_id;
    bool m_idIsSet;
    bool m_idIsValid;
    qint64 m_petId;
    bool m_petIdIsSet;
    bool m_petIdIsValid;
    qint32 m_quantity;
    bool m_quantityIsSet;
    bool m_quantityIsValid;
    QDateTime m_shipDate;
    bool m_shipDateIsSet;
    bool m_shipDateIsValid;
    QString m_status;
    bool m_statusIsSet;
    bool m_statusIsValid;
    bool m_complete;
    bool m_completeIsSet;
    bool m_completeIsValid;
};

} // namespace QtOpenAPI

Q_DECLARE_METATYPE(QtOpenAPI::Order)

#endif // ORDER_H
