diff options
Diffstat (limited to 'frontend/lib/models/step.dart')
-rw-r--r-- | frontend/lib/models/step.dart | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/frontend/lib/models/step.dart b/frontend/lib/models/step.dart new file mode 100644 index 000000000..2cb596175 --- /dev/null +++ b/frontend/lib/models/step.dart @@ -0,0 +1,53 @@ +// TODO: Refactor this to match which values are required and optional +import 'package:auto_gpt_flutter_client/models/artifact.dart'; + +class Step { + final String input; + final Map<String, dynamic> additionalInput; + final String taskId; + final String stepId; + final String name; + final String status; + final String output; + final Map<String, dynamic> additionalOutput; + final List<Artifact> artifacts; + final bool isLast; + + Step({ + required this.input, + required this.additionalInput, + required this.taskId, + required this.stepId, + required this.name, + required this.status, + required this.output, + required this.additionalOutput, + required this.artifacts, + required this.isLast, + }); + + factory Step.fromMap(Map<String, dynamic>? map) { + if (map == null) { + throw ArgumentError('Null map provided to Step.fromMap'); + } + return Step( + input: map['input'] ?? '', + additionalInput: map['additional_input'] != null + ? Map<String, dynamic>.from(map['additional_input']) + : {}, + taskId: map['task_id'] ?? '', + stepId: map['step_id'] ?? '', + name: map['name'] ?? '', + status: map['status'] ?? '', + output: map['output'] ?? '', + additionalOutput: map['additional_output'] != null + ? Map<String, dynamic>.from(map['additional_output']) + : {}, + artifacts: (map['artifacts'] as List) + .map( + (artifact) => Artifact.fromJson(artifact as Map<String, dynamic>)) + .toList(), + isLast: map['is_last'] ?? false, + ); + } +} |