diff --git a/lib/features/question/data/model/answer_model.dart b/lib/features/question/data/model/answer_model.dart new file mode 100644 index 0000000..21536b3 --- /dev/null +++ b/lib/features/question/data/model/answer_model.dart @@ -0,0 +1,26 @@ +import 'package:hadi_hoda_flutter/features/question/data/model/file_model.dart'; +import 'package:hadi_hoda_flutter/features/question/domain/entity/answer_entity.dart'; + +class AnswerModel extends AnswerEntity { + AnswerModel({ + super.id, + super.title, + super.imageId, + super.imageInfo, + super.order, + super.isActive, + }); + + factory AnswerModel.fromJson(Map json) { + return AnswerModel( + id: json['id'], + title: json['title'], + imageId: json['image_id'], + imageInfo: json['image_info'] == null + ? null + : FileModel.fromJson(json['image_info']), + order: json['order'], + isActive: json['is_active'], + ); + } +} diff --git a/lib/features/question/data/model/file_model.dart b/lib/features/question/data/model/file_model.dart new file mode 100644 index 0000000..941f3f6 --- /dev/null +++ b/lib/features/question/data/model/file_model.dart @@ -0,0 +1,17 @@ +import 'package:hadi_hoda_flutter/features/question/domain/entity/file_entity.dart'; + +class FileModel extends FileEntity { + FileModel({ + super.filename, + super.size, + super.extension, + }); + + factory FileModel.fromJson(Map json) { + return FileModel( + filename: json['filename'], + size: json['size'], + extension: json['extension'], + ); + } +} diff --git a/lib/features/question/data/model/question_model.dart b/lib/features/question/data/model/question_model.dart index f6dcfad..e634491 100644 --- a/lib/features/question/data/model/question_model.dart +++ b/lib/features/question/data/model/question_model.dart @@ -1,13 +1,34 @@ +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/domain/entity/answer_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, }); factory QuestionModel.fromJson(Map 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((e) => AnswerModel.fromJson(e)) + .toList(), ); } }