// DragonX Wallet - ImGui Edition
// Copyright 2024-2026 The Hush Developers
// Released under the GPLv3

#pragma once

#include <string>
#include <vector>

namespace dragonx {
namespace data {

/**
 * @brief A single trading pair on an exchange (e.g. DRGX/BTC)
 */
struct ExchangePair {
    std::string base;        ///< e.g. "DRGX"
    std::string quote;       ///< e.g. "BTC"
    std::string displayName; ///< e.g. "DRGX/BTC"
    std::string tradeUrl;    ///< Link to the exchange pair page
};

/**
 * @brief Metadata for a supported exchange
 */
struct ExchangeInfo {
    std::string name;    ///< e.g. "TradeOgre"
    std::string baseUrl; ///< e.g. "https://tradeogre.com"
    std::vector<ExchangePair> pairs;
};

/**
 * @brief Returns the static registry of supported exchanges + pairs
 */
const std::vector<ExchangeInfo>& getExchangeRegistry();

} // namespace data
} // namespace dragonx
