enum QuestionsOptionStatus { correct, wrong, selected, unSelected } enum QuestionCardStatus { question, wrongAnswer, correctAnswer, skippedAnswer, completed, findingWinner, winnerFound } class QuestionModel { String? id; String? titleEn; String? titleAr; String? marathonId; int? questionTypeId; int? questionTime; int? nextQuestGap; int? gapType; String? gapText; String? gapImage; int? questOptionsLimit; List? questionOptions; QuestionModel({ String? id, String? titleEn, String? titleAr, String? marathonId, int? questionTypeId, int? questionTime, int? nextQuestGap, int? gapType, String? gapText, String? gapImage, int? questOptionsLimit, List? questionOptions, }); QuestionModel.fromJson(Map json) { id = json['id']; titleEn = json['titleEn']; titleAr = json['titleAr']; marathonId = json['marathonId']; questionTypeId = json['questionTypeId']; questionTime = json['questionTime']; nextQuestGap = json['nextQuestGap']; gapType = json['gapType']; gapText = json['gapText']; gapImage = json['gapImage']; questOptionsLimit = json['questOptionsLimit']; if (json['questionOptions'] != null) { questionOptions = []; json['questionOptions'].forEach((v) { questionOptions!.add(QuestionOptions.fromJson(v)); }); } } Map toJson() { Map data = {}; data['id'] = id; data['titleEn'] = titleEn; data['titleAr'] = titleAr; data['marathonId'] = marathonId; data['questionTypeId'] = questionTypeId; data['questionTime'] = questionTime; data['nextQuestGap'] = nextQuestGap; data['gapType'] = gapType; data['gapText'] = gapText; data['gapImage'] = gapImage; data['questOptionsLimit'] = questOptionsLimit; if (questionOptions != null) { data['questionOptions'] = questionOptions!.map((v) => v.toJson()).toList(); } return data; } } class QuestionOptions { String? id; String? titleEn; String? titleAr; String? questionId; int? sequence; String? image; bool? isCorrectOption; QuestionsOptionStatus? optionStatus; QuestionOptions({ String? id, String? titleEn, String? titleAr, String? questionId, int? sequence, String? image, bool? isCorrectOption, QuestionsOptionStatus? optionStatus, }); QuestionOptions.fromJson(Map json) { id = json['id']; titleEn = json['titleEn']; titleAr = json['titleAr']; questionId = json['questionId']; sequence = json['sequence']; image = json['image']; isCorrectOption = json['isCorrectOption']; optionStatus = QuestionsOptionStatus.unSelected; } Map toJson() { Map data = {}; data['id'] = id; data['titleEn'] = titleEn; data['titleAr'] = titleAr; data['questionId'] = questionId; data['sequence'] = sequence; data['image'] = image; data['isCorrectOption'] = isCorrectOption; return data; } }