/**
 * OpenAPI Petstore
 * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
 *
 * The version of the OpenAPI document: 1.0.0
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

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

#ifndef PFXOrder_H
#define PFXOrder_H

#include <QJsonObject>

#include <QDateTime>
#include <QString>

#include "PFXEnum.h"
#include "PFXObject.h"

namespace test_namespace {

class PFXOrder : public PFXObject {
public:
    PFXOrder();
    PFXOrder(QString json);
    ~PFXOrder() override;

    QString asJson() const override;
    QJsonObject asJsonObject() const override;
    void fromJsonObject(QJsonObject json) override;
    void fromJson(QString jsonString) override;

    qint64 getId() const;
    void setId(const qint64 &id);
    bool is_id_Set() const;
    bool is_id_Valid() const;

    qint64 getPetId() const;
    void setPetId(const qint64 &pet_id);
    bool is_pet_id_Set() const;
    bool is_pet_id_Valid() const;

    qint32 getQuantity() const;
    void setQuantity(const qint32 &quantity);
    bool is_quantity_Set() const;
    bool is_quantity_Valid() const;

    QDateTime getShipDate() const;
    void setShipDate(const QDateTime &ship_date);
    bool is_ship_date_Set() const;
    bool is_ship_date_Valid() const;

    QString getStatus() const;
    void setStatus(const QString &status);
    bool is_status_Set() const;
    bool is_status_Valid() const;

    bool isComplete() const;
    void setComplete(const bool &complete);
    bool is_complete_Set() const;
    bool is_complete_Valid() const;

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

private:
    void initializeModel();

    qint64 m_id;
    bool m_id_isSet;
    bool m_id_isValid;

    qint64 m_pet_id;
    bool m_pet_id_isSet;
    bool m_pet_id_isValid;

    qint32 m_quantity;
    bool m_quantity_isSet;
    bool m_quantity_isValid;

    QDateTime m_ship_date;
    bool m_ship_date_isSet;
    bool m_ship_date_isValid;

    QString m_status;
    bool m_status_isSet;
    bool m_status_isValid;

    bool m_complete;
    bool m_complete_isSet;
    bool m_complete_isValid;
};

} // namespace test_namespace

Q_DECLARE_METATYPE(test_namespace::PFXOrder)

#endif // PFXOrder_H
