workouttest_util/lib/model/tutorial_step.dart
2023-02-12 22:42:51 +01:00

99 lines
2.7 KiB
Dart

import 'dart:ui';
import 'dart:convert';
import 'package:workouttest_util/util/app_language.dart';
enum TutorialEnum { basic, development, training }
class TutorialStepAction {
late String direction;
late int top;
late int left;
late bool showBubble;
late int bubbleX;
late int bubbleY;
late int bubbleWidth;
late int bubbleHeight;
late bool showCheckText;
late int parent;
TutorialStepAction.fromJson(Map json) {
direction = json['direction'];
top = json['top'];
left = json['left'];
showBubble = json['show_bubble'];
bubbleX = json['bubble_x'];
bubbleY = json['bubble_y'];
bubbleWidth = json['bubble_width'];
bubbleHeight = json['bubble_height'];
showCheckText = json['show_check_text'];
parent = json['parent'];
}
Map<String, dynamic> toJson() => {
"direction": direction,
"top": top,
"left": left,
"showBubble": showBubble,
"bubbleX": bubbleX,
"bubbleY": bubbleY,
"bubbleWidth": bubbleWidth,
"bubbleHeight": bubbleHeight,
"showCheckText": showCheckText,
"parent": parent,
};
@override
String toString() => toJson().toString();
}
class TutorialStep {
int? tutorialStepId;
int? tutorialId;
int? step;
String? tutorialText;
String? direction;
String? checkText;
String? condition;
String? branch;
int? parentId;
TutorialStepAction? action;
String? tutorialTextTranslation;
String? errorTextTranslation;
TutorialStep.fromJson(Map json) {
tutorialStepId = json['tutorialStepId'];
tutorialId = json['tutorialId'];
step = json['step'];
tutorialText = json['tutorialText'];
checkText = json['checkText'];
condition = json['condition'];
if (condition != null) {
condition = condition!.replaceAll(r'\\', "replace");
action = TutorialStepAction.fromJson(jsonDecode(condition!));
}
if (json['translations'] != null && json['translations'].length > 0) {
tutorialTextTranslation =
AppLanguage().appLocal == const Locale('hu') ? json['translations'][0]['tutorialText'] : json['tutorialText'];
errorTextTranslation = AppLanguage().appLocal == const Locale('hu') ? json['translations'][0]['errorText'] : json['errorText'];
}
}
Map<String, dynamic> toJson() => {
"tutorialStepId": tutorialStepId,
"tutorialId": tutorialId,
"step": step,
"tutorialText": tutorialText,
"checkText": checkText,
"tutorialTextTranslation": tutorialTextTranslation,
"errorTextTranslation": errorTextTranslation,
"condition": condition,
"action": action != null ? action!.toJson() : ""
};
@override
String toString() => toJson().toString();
}