#pragma once

#include <string>
#include <filesystem>

namespace GModTeach {
namespace Core {

struct AppConfig {
    std::filesystem::path gmadLsDir;
    std::filesystem::path gmodDir;

    [[nodiscard]] bool IsValid() const;
};

class ConfigManager {
public:
    static bool Load(const std::filesystem::path& iniPath, AppConfig& outConfig);
    static bool Save(const std::filesystem::path& iniPath, const AppConfig& config);
    static bool Reset(const std::filesystem::path& iniPath);
    static std::filesystem::path GetDefaultConfigPath();
};

} 
} 
