File indexing completed on 2024-04-21 04:59:55

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libruqola_private_export.h"
0010 #include "messagesmodel.h"
0011 
0012 class LIBRUQOLACORE_TESTS_EXPORT ThreadMessageModel : public MessagesModel
0013 {
0014     Q_OBJECT
0015 public:
0016     explicit ThreadMessageModel(RocketChatAccount *account = nullptr, QObject *parent = nullptr);
0017     ~ThreadMessageModel() override;
0018 
0019     [[nodiscard]] QString threadMessageId() const;
0020     void setThreadMessageId(const QString &threadMessageId);
0021 
0022     void parseThreadMessages(const QJsonObject &obj);
0023     void loadMoreThreadMessages(const QJsonObject &obj);
0024 
0025     [[nodiscard]] int total() const;
0026     void setTotal(int total);
0027     void setPreviewMessage(const Message &message);
0028 
0029 private:
0030     void parse(const QJsonObject &obj);
0031     Message mPreviewMessage;
0032     QString mThreadMessageId;
0033     int mTotal = 0;
0034 };