#ifndef POP3SYNCHRONIZER_H
#define POP3SYNCHRONIZER_H

#include <QObject>
// Asegúrate de incluir las definiciones necesarias de MailItem, etc. desde el proyecto.

class PopSynchronizer : public QObject {
    Q_OBJECT
public:
    explicit PopSynchronizer(QObject *parent = nullptr);

    bool connectToPop3(const QString& host, const QString& user, const QString& password);
    QVector<MailItem> fetchMailItems(const QString &folderId, int offset);
    bool sendMail(const MailItem &mail, const QString &accountId);
    void fetchMails(const QString &accountId, const QString &folderId);
    void moveMail(const QString &mailItemId, const QString &targetFolderId);
    void deleteMail(const QString &mailItemId);
    void markAsRead(const QString &mailItemId, bool read);

private:
    bool m_isConnected = false; 

signals:
    void connectionStatusChanged(bool success);

public slots:
    void processMailSync(); // Slot para iniciar la lógica de sincronización en segundo plano.
};

#endif // POP3SYNCHRONIZER_H