File indexing completed on 2024-05-12 05:04:16

0001 // SPDX-FileCopyrightText: 2023 Shubham Arora <shubhamarora@protonmail.com>
0002 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0003 
0004 #pragma once
0005 
0006 #include <QtQml>
0007 
0008 class History
0009 {
0010     Q_GADGET
0011 
0012     Q_PROPERTY(QString day MEMBER m_day)
0013     Q_PROPERTY(QString uses MEMBER m_uses)
0014     Q_PROPERTY(QString accounts MEMBER m_accounts)
0015 
0016 public:
0017     History() = default;
0018     explicit History(const QString &day, const QString &uses, const QString &accounts);
0019 
0020 private:
0021     QString m_day;
0022     QString m_uses;
0023     QString m_accounts;
0024 };
0025 
0026 class Tag
0027 {
0028     Q_GADGET
0029 
0030     Q_PROPERTY(QString name MEMBER m_name)
0031     Q_PROPERTY(QUrl url MEMBER m_url)
0032     Q_PROPERTY(bool following MEMBER m_following)
0033     Q_PROPERTY(QList<History> history READ history CONSTANT)
0034 
0035 public:
0036     Tag() = default;
0037     explicit Tag(QJsonObject obj);
0038 
0039     QString name() const;
0040     QUrl url() const;
0041     QList<History> history() const;
0042 
0043 private:
0044     void fromJson(QJsonObject obj);
0045 
0046     QString m_name;
0047     QUrl m_url;
0048     bool m_following = false;
0049     QList<History> m_history;
0050 };