File indexing completed on 2024-05-12 16:25:42

0001 /*
0002    SPDX-FileCopyrightText: 2021 David Faure <faure@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libruqolacore_export.h"
0010 #include "localdatabasebase.h"
0011 #include <QString>
0012 #include <memory>
0013 
0014 class QFile;
0015 class QSqlTableModel;
0016 class Message;
0017 class LIBRUQOLACORE_EXPORT LocalMessageLogger : public LocalDatabaseBase
0018 {
0019 public:
0020     LocalMessageLogger();
0021 
0022     void addMessage(const QString &accountName, const QString &roomName, const Message &message);
0023     void deleteMessage(const QString &accountName, const QString &roomName, const QString &messageId);
0024     [[nodiscard]] std::unique_ptr<QSqlTableModel> createMessageModel(const QString &accountName, const QString &roomName) const;
0025     [[nodiscard]] bool saveToFile(QFile &file, const QString &accountName, const QString &roomName) const;
0026 
0027 protected:
0028     [[nodiscard]] QString schemaDataBase() const override;
0029 };