File indexing completed on 2024-06-23 05:18:37

0001 /*
0002    SPDX-FileCopyrightText: 2013-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 <QDateTime>
0011 
0012 #include "messagecomposer_export.h"
0013 
0014 namespace MessageComposer
0015 {
0016 /** Send later information. */
0017 class MESSAGECOMPOSER_EXPORT SendLaterInfo
0018 {
0019 public:
0020     explicit SendLaterInfo() = default;
0021 
0022     enum RecurrenceUnit {
0023         Days = 0,
0024         Weeks,
0025         Months,
0026         Years,
0027     };
0028 
0029     [[nodiscard]] bool isValid() const;
0030 
0031     void setItemId(Akonadi::Item::Id id);
0032     [[nodiscard]] Akonadi::Item::Id itemId() const;
0033 
0034     void setRecurrenceUnit(RecurrenceUnit unit);
0035     [[nodiscard]] RecurrenceUnit recurrenceUnit() const;
0036 
0037     void setRecurrenceEachValue(int value);
0038     [[nodiscard]] int recurrenceEachValue() const;
0039 
0040     [[nodiscard]] bool isRecurrence() const;
0041     void setRecurrence(bool b);
0042 
0043     void setDateTime(const QDateTime &time);
0044     [[nodiscard]] QDateTime dateTime() const;
0045 
0046     void setLastDateTimeSend(const QDateTime &date);
0047     [[nodiscard]] QDateTime lastDateTimeSend() const;
0048 
0049     void setSubject(const QString &subject);
0050     [[nodiscard]] QString subject() const;
0051 
0052     void setTo(const QString &to);
0053     [[nodiscard]] QString to() const;
0054 
0055     bool operator==(const SendLaterInfo &other) const;
0056     inline bool operator!=(const SendLaterInfo &other) const
0057     {
0058         return !(*this == other);
0059     }
0060 
0061 private:
0062     QString mTo;
0063     QString mSubject;
0064     QDateTime mDateTime;
0065     QDateTime mLastDateTimeSend;
0066     Akonadi::Item::Id mId = -1;
0067     int mRecurrenceEachValue = 1;
0068     RecurrenceUnit mRecurrenceUnit = Days;
0069     bool mRecurrence = false;
0070 };
0071 }
0072 
0073 MESSAGECOMPOSER_EXPORT QDebug operator<<(QDebug debug, const MessageComposer::SendLaterInfo &info);