class ManualItem { int id; dynamic title; dynamic titlemm; List slides; bool isBuyer; ManualItem({this.id, this.title, this.titlemm, this.slides, this.isBuyer}); factory ManualItem.fromJson(Map json) { var list = json['slides'] as List; List slideList = list.map((i) => SlideData.fromJson(i)).toList(); return ManualItem( id: json['id'], title: json['title'], titlemm: json['titlemm'], isBuyer: json['isBuyer'], slides: slideList); } factory ManualItem.fromMap(Map map) { var list = map['slides'] as List; List slideList = list.map((i) => SlideData.fromJson(i)).toList(); return ManualItem( id: map['id'], title: map['title'], titlemm: map['titlemm'], isBuyer: map['isBuyer'], slides: slideList); } Map toJson() => { 'id': id, 'title': "$title", 'titlemm': "$titlemm", 'isBuyer': isBuyer, 'slides': slides.map((slide) { return slide.toJson(); }).toList(), }; Map toMap() => { 'id': id, 'title': title, 'titlemm': titlemm, 'isBuyer': isBuyer, 'slides': slides.map((slide) { return slide.toMap(); }).toList(), }; @override String toString() { return 'ManualItem{id:$id,title: $title,titlemm: $titlemm,isBuyer: $isBuyer, slides: $slides}'; } @override bool operator ==(other) { if (identical(this, other)) { return true; } return other.id == this.id; } @override int get hashCode { int result = 17; result = 37 * result + id.hashCode; return result; } factory ManualItem.clone(ManualItem m) { return ManualItem( id: m.id, title: m.title, titlemm: m.titlemm, isBuyer: m.isBuyer, slides: m.slides.map((s) => SlideData.clone(s)).toList(), ); } } class SlideData { int id; String image; String imagemm; List instructions; List instructionsmm; SlideData( {this.id, this.image, this.imagemm, this.instructions, this.instructionsmm}); factory SlideData.fromJson(Map json) { var list = json['instructions'] as List; List instructionList = list.map((i) => Instruction.fromJson(i)).toList(); var listmm = json['instructionsmm'] as List; List instructionmmList = listmm.map((i) => Instruction.fromJson(i)).toList(); return SlideData( id: json['id'], image: json['image'], imagemm: json['imagemm'], instructions: instructionList, instructionsmm: instructionmmList, ); } factory SlideData.fromMap(Map map, int id) { return SlideData( id: id, image: map['image'], imagemm: map['imagemm'], instructions: map['instructions'], instructionsmm: map['instructionsmm'], ); } Map toJson() => { 'id': id, 'image': image, 'imagemm': imagemm, 'instructions': instructions.map((instruction) { return instruction.toJson(); }).toList(), 'instructionsmm': instructionsmm.map((instruction) { return instruction.toJson(); }).toList(), }; Map toMap() => { 'id': id, 'image': image, 'imagemm': imagemm, 'instructions': instructions.map((instruction) { return instruction.toJson(); }).toList(), 'instructionsmm': instructionsmm.map((instruction) { return instruction.toJson(); }).toList(), }; @override String toString() { return 'SlideData{id:$id,image: $image,imagemm: $imagemm, instructions: $instructions,instructionsmm: $instructionsmm,}'; } factory SlideData.clone(SlideData s) { return SlideData( id: s.id, image: s.image, imagemm: s.imagemm, instructions: s.instructions.map((e) => Instruction.clone(e)).toList(), instructionsmm: s.instructionsmm.map((e) => Instruction.clone(e)).toList()); } @override bool operator ==(other) { if (identical(this, other)) { return true; } return other.id == this.id; } @override int get hashCode { int result = 17; result = 37 * result + id.hashCode; return result; } } class Instruction { int id; String text; double top; double left; Instruction({this.id, this.text, this.top, this.left}); factory Instruction.fromJson(Map json) { return Instruction( id: json['id'] == null ? 0 : json['id'], text: json['text'] == null ? "" : json['text'], top: double.parse(json['top'].toString()), left: double.parse(json['left'].toString()), ); } factory Instruction.fromMap(Map map, int id) { return Instruction( id: id, text: map['text'], top: map['top'], left: map['left'], ); } Map toJson() => { 'id': id, 'text': text, 'top': top, 'left': left, }; Map toMap() => { 'id': id, 'text': text, 'top': top, 'left': left, }; @override String toString() { return 'Instruction{id: $id,text: $text,top: $top, left: $left}'; } @override bool operator ==(other) { if (identical(this, other)) { return true; } return other.id == this.id; } @override int get hashCode { int result = 17; result = 37 * result + id.hashCode; return result; } factory Instruction.clone(Instruction i) { return Instruction(id: i.id, text: i.text, top: i.top, left: i.left); } }