#pragma once #include "repo/IProjectRepository.hpp" namespace geopro::net { class ApiClient; } namespace geopro::data { // 用共享会话 ApiClient 实现导航仓储(同步阻塞)。token 由调用方注入 ApiClient。 class ApiProjectRepository : public IProjectRepository { public: explicit ApiProjectRepository(net::ApiClient& api); RepoResult> listWorkspaces() override; RepoResult switchWorkspace(const std::string& tenantId) override; RepoResult pageProjects(const std::string& nameFilter, const std::string& typeId, int pageNo, int pageSize) override; RepoResult> listProjectTypes() override; RepoResult> loadStructure(const std::string& projectId) override; RepoResult loadTmRows(const std::string& projectId, const std::string& tmObjectId, int classifyType, int pageNo) override; private: net::ApiClient& api_; }; } // namespace geopro::data