#ifndef FILEEXPORTER_H
#define FILEEXPORTER_H

#include <QObject>

#include "global/kaglobal.h"

class FileExporter : public QObject
{
    Q_OBJECT

public:
    explicit FileExporter(QObject *parent = nullptr);

    bool showSaveDialog(int type, const QString& docName, const QString& docContent, QWidget *parent);
    bool exportFile(const QString& content, DownloadType type, const QString& savePath);

signals:
    void exportSuccess(const QString& path);
    void exportFailed(const QString& error);

private:
    bool exportTXT(const QString& content, const QString& path);
    bool exportMarkdown(const QString& content, const QString& path);
    bool exportPDF(const QString& content, const QString& path);
    bool exportDOCX(const QString& content, const QString& path);
    QString convertMarkDownToHtml(const QString &markDown);
    QString markdownToHtml(const std::string& markdown);
};

#endif // FILEEXPORTER_H
