#pragma once #include "data.h" #include // Load all registry data via sqlite_api HTTP endpoint. // api_url should be like "http://127.0.0.1:8484". // Returns true on success. bool load_registry_data_http(const std::string& api_url, RegistryData& out); // Load projects list (con conteos) y huerfanas. No destruye el resto de // campos de out, solo setea projects + orphan_*. bool load_projects_http(const std::string& api_url, RegistryData& out); // Load detalle de un proyecto (apps/analyses/vaults). Si id=="orphans" // devuelve las entidades sin project_id. bool load_project_detail_http(const std::string& api_url, const std::string& id, ProjectDetail& out); // Load detalle completo de una funcion (codigo + documentacion + metadata). // Usado por la pestana Explorer. bool load_function_detail_http(const std::string& api_url, const std::string& id, FunctionDetail& out); // Load lista plana de funciones para el Explorer (id, name, lang, domain, // kind, purity, description, tested) — todas las funciones, no solo recientes. bool load_all_functions_http(const std::string& api_url, std::vector& out); // Load tests unitarios asociados a una funcion (tabla unit_tests con FK // function_id). Devuelve la lista vacia si la funcion no tiene tests. bool load_unit_tests_http(const std::string& api_url, const std::string& function_id, std::vector& out); // Operaciones de mutacion (thread-safe porque http_post ya lo es). // Devuelven el body de respuesta en `out_body`. true si HTTP status 2xx. bool http_post_reindex(const std::string& api_url, std::string& out_body); bool http_post_add_app(const std::string& api_url, const std::string& name, const std::string& lang, const std::string& domain, const std::string& project, const std::string& description, std::string& out_body); bool http_post_add_analysis(const std::string& api_url, const std::string& name, const std::string& project, const std::string& packages_csv, const std::string& description, std::string& out_body); bool http_post_add_vault(const std::string& api_url, const std::string& name, const std::string& project, const std::string& path, const std::string& description, std::string& out_body);