diff --git a/src/Record/RecordService.php b/src/Record/RecordService.php index 0efcea5..461bbbd 100644 --- a/src/Record/RecordService.php +++ b/src/Record/RecordService.php @@ -57,15 +57,17 @@ readonly class RecordService } $uploadResult = FileService::create($schema, $uploadFromUrl, $file); + $newRecordId = empty($id) ? Id::new() : $id; $uniqueEdges = collect($edges) - ->map(function ($edge, $index) { + ->map(function ($edge, $index) use ($newRecordId, $schemaName) { + $edge['source'] = $newRecordId; + $edge['sourceSchema'] = $schemaName; $edge["rank"] = $index; return (array)(new Edge(...$edge)); }) ->unique(fn($e) => $e['field'] . $e['source'] . $e['target'] . $e['sourceSchema']) ->values()->toArray(); $uniqueEdgesCollection = EdgeCollection::fromArray($uniqueEdges); - if ($uploadResult->isDuplicate) { $this->edgeService->update($uploadResult->duplicateId, $uniqueEdgesCollection); @@ -73,7 +75,7 @@ readonly class RecordService } $record = new Record( - id: empty($id) ? Id::new() : $id, + id: $newRecordId, schema: $schema->name, status: Status::from($status), _sys: System::newRecord($this->authService->currentUserId()),