// SPDX-FileCopyrightText: 2025 - 2026 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

#ifndef OPS_LOG_EXPORT_H
#define OPS_LOG_EXPORT_H

#include <string>
#include <QStringList>

class OpsLogExport {
public:
    OpsLogExport(const std::string& target);

    void run();

private:
    std::string target_dir;

    bool path_exists(const std::string& path);
    bool create_directories(const std::string& path);
    void copy_file_or_dir(const std::string& src, const std::string& dst_dir);
    void execute_command(const QStringList &args, const std::string &output_file);

    void createDirStruct();
    void exportAppLogs();
    void exportSystemLogs();
    void exportKernelLogs();
    void exportDDELogs();
    void exportHWLogs();
    void exportOSVersionLogs();
    void exportAptLogs();
    void exportUosSteLogs();
    void exportUosSteTwoLogs();
};

#endif
