From 123291fd897feee8f1bbe2a8927b458adb4374c8 Mon Sep 17 00:00:00 2001 From: hannathkadher Date: Thu, 28 Nov 2024 20:31:19 +0400 Subject: [PATCH] parse incoming connection --- .../spaces_management/model/space_model.dart | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/pages/spaces_management/model/space_model.dart b/lib/pages/spaces_management/model/space_model.dart index 6efe19ec..3e38d931 100644 --- a/lib/pages/spaces_management/model/space_model.dart +++ b/lib/pages/spaces_management/model/space_model.dart @@ -44,7 +44,8 @@ class SpaceModel { this.selectedProducts = const [], }) : internalId = internalId ?? const Uuid().v4(); - factory SpaceModel.fromJson(Map json, {String? parentInternalId}) { + factory SpaceModel.fromJson(Map json, + {String? parentInternalId}) { final String internalId = json['internalId'] ?? const Uuid().v4(); final List children = json['children'] != null @@ -56,7 +57,7 @@ class SpaceModel { }).toList() : []; - return SpaceModel( + final instance = SpaceModel( internalId: internalId, uuid: json['uuid'] ?? '', spaceTuyaUuid: json['spaceTuyaUuid'], @@ -72,11 +73,14 @@ class SpaceModel { isPrivate: json['parent']?['isPrivate'] ?? false, invitationCode: json['parent']?['invitationCode'], children: [], - position: Offset(json['parent']?['x'] ?? 0, json['parent']?['y'] ?? 0), + position: + Offset(json['parent']?['x'] ?? 0, json['parent']?['y'] ?? 0), icon: json['parent']?['icon'] ?? Assets.location, ) : null, - community: json['community'] != null ? CommunityModel.fromJson(json['community']) : null, + community: json['community'] != null + ? CommunityModel.fromJson(json['community']) + : null, children: children, icon: json['icon'] ?? Assets.location, position: Offset(json['x'] ?? 0, json['y'] ?? 0), @@ -90,6 +94,20 @@ class SpaceModel { }).toList() : [], ); + + if (json['incomingConnections'] != null && + json['incomingConnections'] is List && + (json['incomingConnections'] as List).isNotEmpty && + instance.parent != null) { + final conn = json['incomingConnections'][0]; + instance.incomingConnection = Connection( + startSpace: instance.parent ?? instance, // Parent space + endSpace: instance, // This space instance + direction: conn['direction'], + ); + } + + return instance; } Map toMap() {