+#include "syncableobject.h"
+
+class COMMON_EXPORT Identity : public SyncableObject
+{
+ Q_OBJECT
+ SYNCABLE_OBJECT
+
+ Q_PROPERTY(IdentityId identityId READ id WRITE setId)
+ Q_PROPERTY(QString identityName READ identityName WRITE setIdentityName)
+ Q_PROPERTY(QString realName READ realName WRITE setRealName)
+ Q_PROPERTY(QStringList nicks READ nicks WRITE setNicks)
+ Q_PROPERTY(QString awayNick READ awayNick WRITE setAwayNick)
+ Q_PROPERTY(bool awayNickEnabled READ awayNickEnabled WRITE setAwayNickEnabled)
+ Q_PROPERTY(QString awayReason READ awayReason WRITE setAwayReason)
+ Q_PROPERTY(bool awayReasonEnabled READ awayReasonEnabled WRITE setAwayReasonEnabled)
+ Q_PROPERTY(bool autoAwayEnabled READ autoAwayEnabled WRITE setAutoAwayEnabled)
+ Q_PROPERTY(int autoAwayTime READ autoAwayTime WRITE setAutoAwayTime)
+ Q_PROPERTY(QString autoAwayReason READ autoAwayReason WRITE setAutoAwayReason)
+ Q_PROPERTY(bool autoAwayReasonEnabled READ autoAwayReasonEnabled WRITE setAutoAwayReasonEnabled)
+ Q_PROPERTY(bool detachAwayEnabled READ detachAwayEnabled WRITE setDetachAwayEnabled)
+ Q_PROPERTY(QString detachAwayReason READ detachAwayReason WRITE setDetachAwayReason)
+ Q_PROPERTY(bool detachAwayReasonEnabled READ detachAwayReasonEnabled WRITE setDetachAwayReasonEnabled)
+ Q_PROPERTY(QString ident READ ident WRITE setIdent)
+ Q_PROPERTY(QString kickReason READ kickReason WRITE setKickReason)
+ Q_PROPERTY(QString partReason READ partReason WRITE setPartReason)
+ Q_PROPERTY(QString quitReason READ quitReason WRITE setQuitReason)
+
+public :
+ Identity(IdentityId id = 0, QObject *parent = nullptr);
+ Identity(const Identity &other, QObject *parent = nullptr);