import 'package:flutter/material.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/create_space_template_body_model.dart'; import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart'; import 'package:syncrow_web/services/api/http_service.dart'; import 'package:syncrow_web/utils/constants/api_const.dart'; import 'package:syncrow_web/utils/constants/temp_const.dart'; class SpaceModelManagementApi { Future> listSpaceModels({int page = 1}) async { try { List spaceModels = []; bool hasNext = true; while (hasNext) { await HTTPService().get( path: ApiEndpoints.listSpaceModels .replaceAll('{projectId}', TempConst.projectId), queryParameters: {'page': page}, expectedResponseModel: (json) { List jsonData = json['data']; hasNext = json['hasNext'] ?? false; int currentPage = json['page'] ?? 1; List spaceModelList = jsonData.map((jsonItem) { return SpaceTemplateModel.fromJson(jsonItem); }).toList(); spaceModels.addAll(spaceModelList); page = currentPage + 1; return spaceModelList; }, ); } return spaceModels; } catch (e) { debugPrint('Error fetching space models: $e'); return []; } } Future createSpaceModel( CreateSpaceTemplateBodyModel spaceModel) async { try { final response = await HTTPService().post( path: ApiEndpoints.createSpaceModel .replaceAll('{projectId}', TempConst.projectId), showServerMessage: true, body: spaceModel.toJson(), expectedResponseModel: (json) { return SpaceTemplateModel.fromJson(json['data']); }, ); return response; } catch (e) { debugPrint('Error creating community: $e'); return null; } } }