#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 loadRows(const std::string& projectId, const std::string& parentId, int parentConfType, int classifyType, int pageNo) override; RepoResult loadObjectDetail(const std::string& objectId, int confType) override; RepoResult loadDatasetForm(const std::string& dsObjectId) override; RepoResult> loadExceptionsByTm(const std::string& tmObjectId) override; private: net::ApiClient& api_; }; } // namespace geopro::data