CategoriesModel

 avatar
unknown
dart
2 years ago
4.1 kB
5
Indexable
import 'dart:convert';

import 'package:base_architecture/data_layer/models/api_models/books_models/book_model.dart';
import 'package:base_architecture/data_layer/models/api_models/translated_name_model.dart';

class CategoriesModel {
  CategoriesModel({this.data});

  CategoriesModel.fromJson(Map<String, dynamic> json) {
    data = json['data'] != null
        ? new CategoriesModelData.fromJson(json['data'])
        : null;
  }
  CategoriesModelData? data;

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    if (this.data != null) {
      data['data'] = this.data!.toJson();
    }
    return data;
  }
}

class CategoriesModelData {
  CategoriesModelData({this.categories,this.mainCategories});

  CategoriesModelData.fromJson(Map<String, dynamic> json) {
    if (json['categories'] != null) {
      categories = <CategoriesItem>[];
      json['categories'].forEach((v) {
        categories!.add(CategoriesItem.fromJson(v));
      });
    }
    if (json['main_categories'] != null) {
      mainCategories = <MainCategoriesTabs>[];
      json['main_categories'].forEach((v) {
        mainCategories!.add(new MainCategoriesTabs.fromJson(v));
      });
    }
  }
  List<CategoriesItem>? categories;
  List<MainCategoriesTabs>? mainCategories;

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    if (categories != null) {
      data['categories'] = categories!.map((v) => v.toJson()).toList();
    }
    if (this.mainCategories != null) {
      data['main_categories'] =
          this.mainCategories!.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class CategoriesItem {
  CategoriesItem({
    this.id,
    this.translatedName,
    this.imageFullPath,
    this.soundFullPath,
    this.mainCategoryBooks,
  });

  CategoriesItem.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    translatedName = json['translated_name'] != null
        ? TranslatedNameModel.fromJson(json['translated_name'])
        : null;
    imageFullPath = json['image_full_path'];
    soundFullPath = json['sound_full_path'];
    if (json['books'] != null) {
      mainCategoryBooks = <Book>[];
      json['books'].forEach((v) {
        mainCategoryBooks!.add(Book.fromJson(v));
      });
    }
  }
  int? id;
  TranslatedNameModel? translatedName;
  String? imageFullPath;
  String? soundFullPath;
  List<Book>? mainCategoryBooks;

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = <String, dynamic>{};
    data['id'] = id;
    data['translated_name'] = translatedName;
    data['image_full_path'] = imageFullPath;
    data['sound_full_path'] = soundFullPath;
    if (mainCategoryBooks != null) {
      data['books'] = mainCategoryBooks!.map((v) => v.toJson()).toList();
    }
    return data;
  }

  static Map<String, dynamic> toMap(CategoriesItem categoriesItem) => {
        'id': categoriesItem.id,
        'translated_name': categoriesItem.translatedName,
        'image_full_path': categoriesItem.imageFullPath,
        'sound_full_path': categoriesItem.soundFullPath,
        'books': categoriesItem.mainCategoryBooks,
      };

}
class MainCategoriesTabs {
  int? id;
  String? imageFullPath;
  String? soundFullPath;
  String? nameAr;
  String? nameEn;
  String? nameHe;

  MainCategoriesTabs(
      {this.id,
      this.imageFullPath,
      this.soundFullPath,
      this.nameAr,
      this.nameEn,
      this.nameHe});

  MainCategoriesTabs.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    imageFullPath = json['image_full_path'];
    soundFullPath = json['sound_full_path'];
    nameAr = json['name_ar'];
    nameEn = json['name_en'];
    nameHe = json['name_he'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['image_full_path'] = this.imageFullPath;
    data['sound_full_path'] = this.soundFullPath;
    data['name_ar'] = this.nameAr;
    data['name_en'] = this.nameEn;
    data['name_he'] = this.nameHe;
    return data;
  }
}
Editor is loading...