2026-05-12 01:08:09 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "../databasemanager.h"
|
|
|
|
|
#include "../../core/mailitem.h"
|
|
|
|
|
#include <QVector>
|
|
|
|
|
#include <optional>
|
|
|
|
|
|
2026-08-17 15:34:49 +02:00
|
|
|
struct StoredAttachmentRecord
|
|
|
|
|
{
|
|
|
|
|
QString fileName;
|
|
|
|
|
QString mimeType;
|
|
|
|
|
QString contentId;
|
|
|
|
|
qint64 size{0};
|
|
|
|
|
QString storedPath;
|
|
|
|
|
};
|
|
|
|
|
|
2026-05-12 01:08:09 +02:00
|
|
|
class MailItemDao
|
|
|
|
|
{
|
|
|
|
|
public:
|
2026-08-17 15:34:49 +02:00
|
|
|
static bool insert(MailItem& item);
|
|
|
|
|
static bool upsert(MailItem& item);
|
2026-05-12 01:08:09 +02:00
|
|
|
static bool update(const MailItem& item);
|
|
|
|
|
static bool remove(qint64 id);
|
|
|
|
|
static std::optional<MailItem> findById(qint64 id);
|
|
|
|
|
static QVector<MailItem> findAll();
|
|
|
|
|
static QVector<MailItem> findByFolderId(int folderId);
|
|
|
|
|
static QVector<MailItem> findByFolderIdSinceUid(int folderId, qint64 sinceUid);
|
2026-08-17 15:34:49 +02:00
|
|
|
static std::optional<qint64> maxUidForFolder(int folderId);
|
|
|
|
|
static QVector<qint64> getUidsForFolder(int folderId);
|
|
|
|
|
static QVector<qint64> uidsForFolder(int folderId);
|
|
|
|
|
static std::optional<MailItem> findByUid(int folderId, qint64 uid);
|
|
|
|
|
static bool removeByUid(int folderId, qint64 uid);
|
|
|
|
|
static bool replaceAttachments(qint64 mailItemId, const QVector<StoredAttachmentRecord>& attachments);
|
|
|
|
|
static QVector<StoredAttachmentRecord> attachmentsForMail(qint64 mailItemId);
|
|
|
|
|
};
|