#ifndef VERSIONMANAGER_H
#define VERSIONMANAGER_H

#include <QString>

// 用于存储解析出的应用版本信息
struct AppVersionInfo {
    QString linkName;
    int major = 0;
    int minor = 0;
    int build = 0;
    bool success = false;
};

/**
 * @class VersionManager
 * @brief 使用Qt接口重构的版本管理类，用于获取应用和硬件版本。
 *
 * 该类提供了静态方法来替代原有的 C 接口，使用 QFileInfo 和 QRegularExpression
 * 来处理文件链接和版本号解析，更健壮和安全。
 */
class VersionManager
{
public:
    /**
     * @brief 获取应用版本信息。
     * @param appName 应用名称 (例如 "app_CCU", "app_TCU").
     * @return 返回一个包含版本信息的 AppVersionInfo 结构体。
     *         如果成功，success 字段为 true。
     */
    static AppVersionInfo getAppVersion(const QString &appName);

    /**
     * @brief 获取硬件版本信息。
     * @return 返回硬件版本字符串，失败则返回空 QString。
     */
    static QString getHardwareVersion();
};

#endif // VERSIONMANAGER_H
