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

0001 /*
0002    SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@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 <QDebug>
0011 #include <QString>
0012 
0013 class LIBRUQOLACORE_EXPORT File
0014 {
0015     Q_GADGET
0016 public:
0017     File();
0018     File(const File &other) = default;
0019 
0020     void parseFile(const QJsonObject &json, bool restApi);
0021     [[nodiscard]] QString fileName() const;
0022     void setFileName(const QString &fileName);
0023 
0024     [[nodiscard]] QString description() const;
0025     void setDescription(const QString &description);
0026 
0027     [[nodiscard]] bool operator==(const File &other) const;
0028 
0029     File &operator=(const File &other) = default;
0030 
0031     [[nodiscard]] QString userId() const;
0032     void setUserId(const QString &userId);
0033 
0034     [[nodiscard]] QString url() const;
0035     void setUrl(const QString &url);
0036 
0037     [[nodiscard]] QString mimeType() const;
0038     void setMimeType(const QString &mimeType);
0039 
0040     [[nodiscard]] qint64 uploadedAt() const;
0041     void setUploadedAt(qint64 uploadedAt);
0042 
0043     [[nodiscard]] QString fileId() const;
0044     void setFileId(const QString &fileId);
0045 
0046     [[nodiscard]] QString rid() const;
0047     void setRid(const QString &rid);
0048 
0049     [[nodiscard]] QString userName() const;
0050     void setUserName(const QString &userName);
0051 
0052     [[nodiscard]] QString uploadedDateTimeStr() const;
0053 
0054     [[nodiscard]] bool complete() const;
0055     void setComplete(bool complete);
0056 
0057     [[nodiscard]] QString typeGroup() const;
0058     void setTypeGroup(const QString &typeGroup);
0059 
0060 private:
0061     QString mFileName;
0062     QString mDescription;
0063     QString mUserId;
0064     QString mUrl;
0065     QString mMimeType;
0066     QString mFileId;
0067     QString mRid;
0068     QString mUserName;
0069     QString mUploadedDateTimeStr;
0070     QString mTypeGroup;
0071 
0072     bool mComplete = false;
0073     qint64 mUploadedAt = -1;
0074 };
0075 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0076 Q_DECLARE_METATYPE(File)
0077 #endif
0078 Q_DECLARE_TYPEINFO(File, Q_MOVABLE_TYPE);
0079 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const File &t);