#pragma once #include #include #include #include #include namespace ModPlatform { enum class Provider { MODRINTH, FLAME }; class ProviderCapabilities { public: auto name(Provider) -> const char*; auto hashType(Provider) -> QString; }; struct ModpackAuthor { QString name; QString url; }; struct IndexedVersion { QVariant addonId; QVariant fileId; QString version; QVector mcVersion; QString downloadUrl; QString date; QString fileName; QVector loaders = {}; QString hash; }; struct IndexedPack { QVariant addonId; Provider provider; QString name; QString description; QList authors; QString logoName; QString logoUrl; QString websiteUrl; bool versionsLoaded = false; QVector versions; }; } // namespace ModPlatform Q_DECLARE_METATYPE(ModPlatform::IndexedPack) Q_DECLARE_METATYPE(ModPlatform::Provider)