Add Account and Folder models, update CMakeLists.txt with source files, add MailItem implementation

This commit is contained in:
Padrino
2026-05-12 00:23:13 +02:00
parent a1c2b97dee
commit c97740c17b
6 changed files with 162 additions and 2 deletions
+55
View File
@@ -0,0 +1,55 @@
#pragma once
#include <QString>
#include <QDateTime>
enum class AccountType {
Outlook,
Gmail,
IMAP
};
class Account
{
public:
Account() = default;
Account(int id, const QString& email, const QString& displayName,
AccountType type, const QString& accessToken = QString(),
const QString& refreshToken = QString(),
const QDateTime& tokenExpires = QDateTime());
int id() const { return m_id; }
void setId(int id) { m_id = id; }
QString email() const { return m_email; }
void setEmail(const QString& email) { m_email = email; }
QString displayName() const { return m_displayName; }
void setDisplayName(const QString& displayName) { m_displayName = displayName; }
AccountType type() const { return m_type; }
void setType(AccountType type) { m_type = type; }
QString accessToken() const { return m_accessToken; }
void setAccessToken(const QString& token) { m_accessToken = token; }
QString refreshToken() const { return m_refreshToken; }
void setRefreshToken(const QString& token) { m_refreshToken = token; }
QDateTime tokenExpires() const { return m_tokenExpires; }
void setTokenExpires(const QDateTime& expires) { m_tokenExpires = expires; }
bool isTokenValid() const {
return !m_accessToken.isEmpty() && m_tokenExpires.isValid() &&
m_tokenExpires > QDateTime::currentDateTimeUtc();
}
private:
int m_id{0};
QString m_email;
QString m_displayName;
AccountType m_type{AccountType::IMAP};
QString m_accessToken;
QString m_refreshToken;
QDateTime m_tokenExpires;
};