You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
334 lines
8.5 KiB
Dart
334 lines
8.5 KiB
Dart
// To parse this JSON data, do
|
|
//
|
|
// final patientEducationJourneyListModel = patientEducationJourneyListModelFromJson(jsonString);
|
|
|
|
import 'dart:convert';
|
|
|
|
PatientEducationJourneyListModel patientEducationJourneyListModelFromJson(String str) => PatientEducationJourneyListModel.fromJson(json.decode(str));
|
|
|
|
String patientEducationJourneyListModelToJson(PatientEducationJourneyListModel data) => json.encode(data.toJson());
|
|
|
|
class PatientEducationJourneyListModel {
|
|
NabedJourneyResponseResult? nabedJourneyResponseResult;
|
|
|
|
PatientEducationJourneyListModel({
|
|
this.nabedJourneyResponseResult,
|
|
});
|
|
|
|
factory PatientEducationJourneyListModel.fromJson(Map<String, dynamic> json) => PatientEducationJourneyListModel(
|
|
nabedJourneyResponseResult: json["NabedJourneyResponseResult"] == null ? null : NabedJourneyResponseResult.fromJson(json["NabedJourneyResponseResult"]),
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"NabedJourneyResponseResult": nabedJourneyResponseResult?.toJson(),
|
|
};
|
|
}
|
|
|
|
class NabedJourneyResponseResult {
|
|
List<Datum>? data;
|
|
Links? links;
|
|
Meta? meta;
|
|
|
|
NabedJourneyResponseResult({
|
|
this.data,
|
|
this.links,
|
|
this.meta,
|
|
});
|
|
|
|
factory NabedJourneyResponseResult.fromJson(Map<String, dynamic> json) => NabedJourneyResponseResult(
|
|
data: json["data"] == null ? [] : List<Datum>.from(json["data"]!.map((x) => Datum.fromJson(x))),
|
|
links: json["links"] == null ? null : Links.fromJson(json["links"]),
|
|
meta: json["meta"] == null ? null : Meta.fromJson(json["meta"]),
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"data": data == null ? [] : List<dynamic>.from(data!.map((x) => x.toJson())),
|
|
"links": links?.toJson(),
|
|
"meta": meta?.toJson(),
|
|
};
|
|
}
|
|
|
|
class Datum {
|
|
List<ContentClass>? contentClasses;
|
|
DateTime? date;
|
|
DefaultPocData? defaultPocData;
|
|
int? id;
|
|
String? integrationApproach;
|
|
bool? isNew;
|
|
DateTime? openedAt;
|
|
String? sourceType;
|
|
Stats? stats;
|
|
TagValues? tagValues;
|
|
|
|
Datum({
|
|
this.contentClasses,
|
|
this.date,
|
|
this.defaultPocData,
|
|
this.id,
|
|
this.integrationApproach,
|
|
this.isNew,
|
|
this.openedAt,
|
|
this.sourceType,
|
|
this.stats,
|
|
this.tagValues,
|
|
});
|
|
|
|
factory Datum.fromJson(Map<String, dynamic> json) => Datum(
|
|
contentClasses: json["content_classes"] == null ? [] : List<ContentClass>.from(json["content_classes"]!.map((x) => ContentClass.fromJson(x))),
|
|
date: json["date"] == null ? null : DateTime.parse(json["date"]),
|
|
defaultPocData: json["default_poc_data"] == null ? null : DefaultPocData.fromJson(json["default_poc_data"]),
|
|
id: json["id"],
|
|
integrationApproach: json["integration_approach"],
|
|
isNew: json["is_new"],
|
|
openedAt: json["opened_at"] == null ? null : DateTime.parse(json["opened_at"]),
|
|
sourceType: json["source_type"],
|
|
stats: json["stats"] == null ? null : Stats.fromJson(json["stats"]),
|
|
tagValues: json["tag_values"] == null ? null : TagValues.fromJson(json["tag_values"]),
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"content_classes": contentClasses == null ? [] : List<dynamic>.from(contentClasses!.map((x) => x.toJson())),
|
|
"date": "${date!.year.toString().padLeft(4, '0')}-${date!.month.toString().padLeft(2, '0')}-${date!.day.toString().padLeft(2, '0')}",
|
|
"default_poc_data": defaultPocData?.toJson(),
|
|
"id": id,
|
|
"integration_approach": integrationApproach,
|
|
"is_new": isNew,
|
|
"opened_at": openedAt?.toIso8601String(),
|
|
"source_type": sourceType,
|
|
"stats": stats?.toJson(),
|
|
"tag_values": tagValues?.toJson(),
|
|
};
|
|
}
|
|
|
|
class ContentClass {
|
|
int? id;
|
|
Image? image;
|
|
int? readPercentage;
|
|
String? title;
|
|
dynamic topics;
|
|
String? type;
|
|
|
|
ContentClass({
|
|
this.id,
|
|
this.image,
|
|
this.readPercentage,
|
|
this.title,
|
|
this.topics,
|
|
this.type,
|
|
});
|
|
|
|
factory ContentClass.fromJson(Map<String, dynamic> json) => ContentClass(
|
|
id: json["id"],
|
|
image: json["image"] == null ? null : Image.fromJson(json["image"]),
|
|
readPercentage: json["read_percentage"],
|
|
title: json["title"],
|
|
topics: json["topics"],
|
|
type: json["type"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"id": id,
|
|
"image": image?.toJson(),
|
|
"read_percentage": readPercentage,
|
|
"title": title,
|
|
"topics": topics,
|
|
"type": type,
|
|
};
|
|
}
|
|
|
|
class Image {
|
|
String? thumbUrl;
|
|
String? url;
|
|
|
|
Image({
|
|
this.thumbUrl,
|
|
this.url,
|
|
});
|
|
|
|
factory Image.fromJson(Map<String, dynamic> json) => Image(
|
|
thumbUrl: json["thumb_url"],
|
|
url: json["url"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"thumb_url": thumbUrl,
|
|
"url": url,
|
|
};
|
|
}
|
|
|
|
class DefaultPocData {
|
|
Image? image;
|
|
String? title;
|
|
|
|
DefaultPocData({
|
|
this.image,
|
|
this.title,
|
|
});
|
|
|
|
factory DefaultPocData.fromJson(Map<String, dynamic> json) => DefaultPocData(
|
|
image: json["image"] == null ? null : Image.fromJson(json["image"]),
|
|
title: json["title"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"image": image?.toJson(),
|
|
"title": title,
|
|
};
|
|
}
|
|
|
|
class Stats {
|
|
int? attachmentsCount;
|
|
int? contentCount;
|
|
int? contentReadCount;
|
|
int? educationalContentCount;
|
|
int? educationalContentReadCount;
|
|
int? educationalReadPercentage;
|
|
bool? isCompleted;
|
|
int? readPercentage;
|
|
int? readRemainingPercentage;
|
|
int? screenshotsCount;
|
|
int? topicCount;
|
|
int? videosCount;
|
|
int? videosReadCount;
|
|
|
|
Stats({
|
|
this.attachmentsCount,
|
|
this.contentCount,
|
|
this.contentReadCount,
|
|
this.educationalContentCount,
|
|
this.educationalContentReadCount,
|
|
this.educationalReadPercentage,
|
|
this.isCompleted,
|
|
this.readPercentage,
|
|
this.readRemainingPercentage,
|
|
this.screenshotsCount,
|
|
this.topicCount,
|
|
this.videosCount,
|
|
this.videosReadCount,
|
|
});
|
|
|
|
factory Stats.fromJson(Map<String, dynamic> json) => Stats(
|
|
attachmentsCount: json["attachments_count"],
|
|
contentCount: json["content_count"],
|
|
contentReadCount: json["content_read_count"],
|
|
educationalContentCount: json["educational_content_count"],
|
|
educationalContentReadCount: json["educational_content_read_count"],
|
|
educationalReadPercentage: json["educational_read_percentage"],
|
|
isCompleted: json["is_completed"],
|
|
readPercentage: json["read_percentage"],
|
|
readRemainingPercentage: json["read_remaining_percentage"],
|
|
screenshotsCount: json["screenshots_count"],
|
|
topicCount: json["topic_count"],
|
|
videosCount: json["videos_count"],
|
|
videosReadCount: json["videos_read_count"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"attachments_count": attachmentsCount,
|
|
"content_count": contentCount,
|
|
"content_read_count": contentReadCount,
|
|
"educational_content_count": educationalContentCount,
|
|
"educational_content_read_count": educationalContentReadCount,
|
|
"educational_read_percentage": educationalReadPercentage,
|
|
"is_completed": isCompleted,
|
|
"read_percentage": readPercentage,
|
|
"read_remaining_percentage": readRemainingPercentage,
|
|
"screenshots_count": screenshotsCount,
|
|
"topic_count": topicCount,
|
|
"videos_count": videosCount,
|
|
"videos_read_count": videosReadCount,
|
|
};
|
|
}
|
|
|
|
class TagValues {
|
|
String? consultationCode;
|
|
String? title;
|
|
String? titleAr;
|
|
|
|
TagValues({
|
|
this.consultationCode,
|
|
this.title,
|
|
this.titleAr,
|
|
});
|
|
|
|
factory TagValues.fromJson(Map<String, dynamic> json) => TagValues(
|
|
consultationCode: json["consultation_code"],
|
|
title: json["title"],
|
|
titleAr: json["title_ar"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"consultation_code": consultationCode,
|
|
"title": title,
|
|
"title_ar": titleAr,
|
|
};
|
|
}
|
|
|
|
class Links {
|
|
String? first;
|
|
String? last;
|
|
dynamic next;
|
|
dynamic prev;
|
|
|
|
Links({
|
|
this.first,
|
|
this.last,
|
|
this.next,
|
|
this.prev,
|
|
});
|
|
|
|
factory Links.fromJson(Map<String, dynamic> json) => Links(
|
|
first: json["first"],
|
|
last: json["last"],
|
|
next: json["next"],
|
|
prev: json["prev"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"first": first,
|
|
"last": last,
|
|
"next": next,
|
|
"prev": prev,
|
|
};
|
|
}
|
|
|
|
class Meta {
|
|
int? currentPage;
|
|
int? from;
|
|
int? lastPage;
|
|
String? path;
|
|
int? perPage;
|
|
int? to;
|
|
int? total;
|
|
|
|
Meta({
|
|
this.currentPage,
|
|
this.from,
|
|
this.lastPage,
|
|
this.path,
|
|
this.perPage,
|
|
this.to,
|
|
this.total,
|
|
});
|
|
|
|
factory Meta.fromJson(Map<String, dynamic> json) => Meta(
|
|
currentPage: json["current_page"],
|
|
from: json["from"],
|
|
lastPage: json["last_page"],
|
|
path: json["path"],
|
|
perPage: json["per_page"],
|
|
to: json["to"],
|
|
total: json["total"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"current_page": currentPage,
|
|
"from": from,
|
|
"last_page": lastPage,
|
|
"path": path,
|
|
"per_page": perPage,
|
|
"to": to,
|
|
"total": total,
|
|
};
|
|
}
|