File indexing completed on 2025-02-02 05:08:40

0001 /*
0002    SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <Akonadi/Item>
0010 #include <QDate>
0011 
0012 class KConfigGroup;
0013 namespace FollowUpReminder
0014 {
0015 /** Follow up reminder information. */
0016 class FollowUpReminderInfo
0017 {
0018 public:
0019     FollowUpReminderInfo();
0020     explicit FollowUpReminderInfo(const KConfigGroup &config);
0021     explicit FollowUpReminderInfo(const FollowUpReminderInfo &info);
0022 
0023     // Can be invalid.
0024     [[nodiscard]] Akonadi::Item::Id originalMessageItemId() const;
0025     void setOriginalMessageItemId(Akonadi::Item::Id value);
0026 
0027     [[nodiscard]] Akonadi::Item::Id todoId() const;
0028     void setTodoId(Akonadi::Item::Id value);
0029 
0030     [[nodiscard]] bool isValid() const;
0031 
0032     [[nodiscard]] QString messageId() const;
0033     void setMessageId(const QString &messageId);
0034 
0035     void setTo(const QString &to);
0036     [[nodiscard]] QString to() const;
0037 
0038     [[nodiscard]] QDate followUpReminderDate() const;
0039     void setFollowUpReminderDate(QDate followUpReminderDate);
0040 
0041     void writeConfig(KConfigGroup &config, qint32 identifier);
0042 
0043     [[nodiscard]] QString subject() const;
0044     void setSubject(const QString &subject);
0045 
0046     [[nodiscard]] bool operator==(const FollowUpReminderInfo &other) const;
0047 
0048     [[nodiscard]] bool answerWasReceived() const;
0049     void setAnswerWasReceived(bool answerWasReceived);
0050 
0051     [[nodiscard]] Akonadi::Item::Id answerMessageItemId() const;
0052     void setAnswerMessageItemId(Akonadi::Item::Id answerMessageItemId);
0053 
0054     [[nodiscard]] qint32 uniqueIdentifier() const;
0055     void setUniqueIdentifier(qint32 uniqueIdentifier);
0056 
0057 private:
0058     void readConfig(const KConfigGroup &config);
0059     Akonadi::Item::Id mOriginalMessageItemId = -1;
0060     Akonadi::Item::Id mAnswerMessageItemId = -1;
0061     Akonadi::Item::Id mTodoId = -1;
0062     QString mMessageId;
0063     QDate mFollowUpReminderDate;
0064     QString mTo;
0065     QString mSubject;
0066     qint32 mUniqueIdentifier = -1;
0067     bool mAnswerWasReceived = false;
0068 };
0069 }
0070 
0071 QDebug operator<<(QDebug debug, const FollowUpReminder::FollowUpReminderInfo &info);