#ifndef ADDRESSBOOKDATA_H
#define ADDRESSBOOKDATA_H

#include <QObject>
#include <QString>
#include <QDate>
#include "odb/core.hxx"

#pragma db object
class AddressbookData : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString title READ title WRITE setTitle)
    Q_PROPERTY(QString firstName READ firstName WRITE setFirstName)
    Q_PROPERTY(QString lastName READ lastName WRITE setLastName)
    Q_PROPERTY(QDate birthDate READ birthDate WRITE setBirthDate)
    Q_PROPERTY(QString idCardNumber READ idCardNumber WRITE setIdCardNumber)
    Q_PROPERTY(bool ztp READ ztp WRITE setZtp)
    Q_PROPERTY(QString addressCity READ addressCity WRITE setAddressCity)
    Q_PROPERTY(QString addressStreet READ addressStreet WRITE setAddressStreet)
    Q_PROPERTY(QString addressHouseNumber READ addressHouseNumber WRITE setAddressHouseNumber)
    Q_PROPERTY(QString addressZipCode READ addressZipCode WRITE setAddressZipCode)

public:
    AddressbookData(QObject *parent = 0);
    QString title() const;
    void setTitle(const QString &title);

    QString firstName() const;
    void setFirstName(const QString &firstName);

    QString lastName() const;
    void setLastName(const QString &lastName);

    QDate birthDate() const;
    void setBirthDate(const QDate &birthDate);

    QString idCardNumber() const;
    void setIdCardNumber(const QString &idCardNumber);

    bool ztp() const;
    void setZtp(bool ztp);

    QString addressCity() const;
    void setAddressCity(const QString &addressCity);

    QString addressStreet() const;
    void setAddressStreet(const QString &addressStreet);

    QString addressHouseNumber() const;
    void setAddressHouseNumber(const QString &addressHouseNumber);

    QString addressZipCode() const;
    void setAddressZipCode(const QString &addressZipCode);

    int id() const;
    void setId(int id);

private:
    friend class odb::access;
#pragma db id auto
    int m_id;
    QString m_title;
    QString m_firstName;
    QString m_lastName;
    QDate m_birthDate;
    QString m_idCardNumber;
    bool m_ztp;
    QString m_addressCity;
    QString m_addressStreet;
    QString m_addressHouseNumber;
    QString m_addressZipCode;
};

#endif // ADDRESSBOOKDATA_H
