#ifndef CUSTOMERBACKEND_H #define CUSTOMERBACKEND_H #include #include #include #include class CustomerBackend : public QObject { Q_OBJECT Q_PROPERTY(int id READ getId WRITE setId NOTIFY idChanged) Q_PROPERTY(bool isCompany READ getIsCompany WRITE setIsCompany NOTIFY isCompanyChanged) Q_PROPERTY(QString firstName READ getFirstName WRITE setFirstName NOTIFY firstNameChanged) Q_PROPERTY(QString lastName READ getLastName WRITE setLastName NOTIFY lastNameChanged) Q_PROPERTY(QString nationality READ getNationality WRITE setNationality NOTIFY nationalityChanged) Q_PROPERTY(QString taxNumber READ getTaxNumber WRITE setTaxNumber NOTIFY taxNumberChanged) Q_PROPERTY(QString vatNumber READ getVatNumber WRITE setVatNumber NOTIFY vatNumberChanged) Q_PROPERTY(QString addressLine1 READ getAddressLine1 WRITE setAddressLine1 NOTIFY addressLine1Changed) Q_PROPERTY(QString addressLine2 READ getAddressLine2 WRITE setAddressLine2 NOTIFY addressLine2Changed) Q_PROPERTY(QString phoneNumber1 READ getPhoneNumber1 WRITE setPhoneNumber1 NOTIFY phoneNumber1Changed) Q_PROPERTY(QString phoneNumber2 READ getPhoneNumber2 WRITE setPhoneNumber2 NOTIFY phoneNumber2Changed) Q_PROPERTY(QString emailAddress READ getEmailAddress WRITE setEmailAddress NOTIFY emailAddressChanged) public: explicit CustomerBackend(QObject *parent = nullptr); ~CustomerBackend() override; int getId() const; void setId(int id); bool getIsCompany() const; QString getFirstName() const; QString getLastName() const; QString getNationality() const; QString getTaxNumber() const; QString getVatNumber() const; QString getAddressLine1() const; QString getAddressLine2() const; QString getPhoneNumber1() const; QString getPhoneNumber2() const; QString getEmailAddress() const; signals: void insertOrUpdate(const QJsonObject&); void deleteClient(const QJsonObject&); void getClientById(const QJsonObject&); void getClientsByIdRange(const QJsonObject&); void getClientsByTextSearch(const QJsonObject&); //Only from first_name and last_name void idChanged(int newId); void isCompanyChanged(bool newIsCompany); void firstNameChanged(const QString& newFirstName); void lastNameChanged(const QString& newLastName); void nationalityChanged(const QString& newNationality); void taxNumberChanged(const QString& newTaxNumber); void vatNumberChanged(const QString& newVatNumber); void addressLine1Changed(const QString& newAddressLine1); void addressLine2Changed(const QString& newAddressLine2); void phoneNumber1Changed(const QString& newPhoneNumber1); void phoneNumber2Changed(const QString& newPhoneNumber2); void emailAddressChanged(const QString& newEmailAddress); public slots: //void errorOccoured(const QJsonObject&); //void insertedOrUpdatedResult(const QJsonObject&); //JSON contains only results true or false //void deletedClient(const QJsonObject&); //JSON contains only results true or false void clientById(const QJsonObject&); //void clientsByIdRange(const QJsonArray&); //JSON contains only results true or false //void clientsByTextSearch(const QJsonArray&); //JSON contains only results true or false void setIsCompany(bool isCompany); void setFirstName(const QString& firstName); void setLastName(const QString& lastName); void setNationality(const QString& nationality); void setTaxNumber(const QString& taxNumber); void setVatNumber(const QString& vatNumber); void setAddressLine1(const QString& addressLine1); void setAddressLine2(const QString& addressLine2); void setPhoneNumber1(const QString& phoneNumber1); void setPhoneNumber2(const QString& phoneNumber2); void setEmailAddress(const QString& emailAddress); private: int m_id; bool m_isCompany; QString m_firstName; QString m_lastName; QString m_nationality; QString m_taxNumber; QString m_vatNumber; QString m_addressLine1; QString m_addressLine2; QString m_phoneNumber1; QString m_phoneNumber2; QString m_emailAddress; struct FieldInfo { QString name; QString type; QString modifier; }; const FieldInfo id{"id", "INT(11)", "NOT NULL AUTO_INCREMENT PRIMARY KEY"}; const FieldInfo isCompany{"is_company", "BOOL", ""}; const FieldInfo firstName{"first_name", "VARCHAR(255)", ""}; const FieldInfo lastName{"last_name", "VARCHAR(255)", ""}; const FieldInfo nationality{"nationality", "VARCHAR(255)", ""}; const FieldInfo taxNumber{"tax_number", "VARCHAR(255)", ""}; const FieldInfo vatNumber{"vat_number", "VARCHAR(255)", ""}; const FieldInfo addressLine1{"address_line_1", "VARCHAR(255)", ""}; const FieldInfo addressLine2{"address_line_2", "VARCHAR(255)", ""}; const FieldInfo phoneNumber1{"phone_number_1", "VARCHAR(255)", ""}; const FieldInfo phoneNumber2{"phone_number_2", "VARCHAR(255)", ""}; const FieldInfo emailAddress{"email_address", "VARCHAR(255)", ""}; const QList fields{id, isCompany, firstName, lastName, nationality, taxNumber, vatNumber, addressLine1, addressLine2, phoneNumber1, phoneNumber2, emailAddress}; }; #endif // CUSTOMERBACKEND_H