You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.9 KiB
54 lines
1.9 KiB
import 'package:hadi_hoda_flutter/features/question/data/model/answer_model.dart';
|
|
import 'package:hadi_hoda_flutter/features/question/data/model/file_model.dart';
|
|
import 'package:hadi_hoda_flutter/features/question/data/model/hadith_model.dart';
|
|
import 'package:hadi_hoda_flutter/features/question/domain/entity/answer_entity.dart';
|
|
import 'package:hadi_hoda_flutter/features/question/domain/entity/hadith_entity.dart';
|
|
import 'package:hadi_hoda_flutter/features/question/domain/entity/question_entity.dart';
|
|
|
|
class QuestionModel extends QuestionEntity {
|
|
QuestionModel({
|
|
super.id,
|
|
super.title,
|
|
super.audioId,
|
|
super.audioInfo,
|
|
super.order,
|
|
super.correctAnswer,
|
|
super.isActive,
|
|
super.answers,
|
|
super.correctAnswerText,
|
|
super.correctAnswerAudioId,
|
|
super.correctAnswerAudioInfo,
|
|
super.hadiths,
|
|
super.imageId,
|
|
super.imageInfo,
|
|
});
|
|
|
|
factory QuestionModel.fromJson(Map<String, dynamic> json) {
|
|
return QuestionModel(
|
|
id: json['id'],
|
|
title: json['title'],
|
|
audioId: json['audio_id'],
|
|
audioInfo: json['audio_info'] == null
|
|
? null
|
|
: FileModel.fromJson(json['audio_info']),
|
|
order: json['order'],
|
|
correctAnswer: json['correct_answer'],
|
|
isActive: json['is_active'],
|
|
answers: json['answers']
|
|
?.map<AnswerEntity>((e) => AnswerModel.fromJson(e))
|
|
.toList(),
|
|
correctAnswerAudioId: json['correct_answer_audio_id'],
|
|
correctAnswerText: json['correct_answer_text'],
|
|
correctAnswerAudioInfo: json['correct_answer_audio_info'] == null
|
|
? null
|
|
: FileModel.fromJson(json['correct_answer_audio_info']),
|
|
hadiths: json['hadiths']
|
|
?.map<HadithEntity>((e) => HadithModel.fromJson(e))
|
|
.toList(),
|
|
imageId: json['image_id'],
|
|
imageInfo: json['image_info'] == null
|
|
? null
|
|
: FileModel.fromJson(json['image_info']),
|
|
);
|
|
}
|
|
}
|