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.
120 lines
2.6 KiB
120 lines
2.6 KiB
import 'package:sonnat/features/single_post/view_models/thumbnail.dart';
|
|
|
|
class Post {
|
|
String? _url;
|
|
Thumbnails? _thumbnail;
|
|
List<Categories>? _categories;
|
|
String? _author;
|
|
String? _title;
|
|
String? _content;
|
|
String? _summary;
|
|
bool? _asSpecial;
|
|
bool? _status;
|
|
String? _createdAt;
|
|
|
|
String? get url => _url;
|
|
|
|
Thumbnails? get thumbnail => _thumbnail;
|
|
|
|
List<Categories>? get categories => _categories;
|
|
|
|
String? get author => _author;
|
|
|
|
String? get title => _title;
|
|
|
|
String? get content => _content;
|
|
|
|
String? get summary => _summary;
|
|
|
|
bool? get asSpecial => _asSpecial;
|
|
|
|
bool? get status => _status;
|
|
|
|
String? get createdAt => _createdAt;
|
|
|
|
Post(
|
|
{String? url,
|
|
Thumbnails? thumbnail,
|
|
List<Categories>? categories,
|
|
String? author,
|
|
String? title,
|
|
String? content,
|
|
String? summary,
|
|
bool? asSpecial,
|
|
bool? status,
|
|
String? createdAt}) {
|
|
_url = url;
|
|
_thumbnail = thumbnail;
|
|
_categories = categories;
|
|
_author = author;
|
|
_title = title;
|
|
_content = content;
|
|
_summary = summary;
|
|
_asSpecial = asSpecial;
|
|
_status = status;
|
|
_createdAt = createdAt;
|
|
}
|
|
|
|
Post.fromJson(dynamic json) {
|
|
_url = json['url'];
|
|
_thumbnail = json['thumbnail'] != null ? Thumbnails.fromJson(json['thumbnail']) : null;
|
|
if (json['categories'] != null) {
|
|
_categories = [];
|
|
json['categories'].forEach((v) {
|
|
_categories?.add(Categories.fromJson(v));
|
|
});
|
|
}
|
|
_author = json['author'];
|
|
_title = json['title'];
|
|
_content = json['content'];
|
|
_summary = json['summary'];
|
|
_asSpecial = json['as_special'];
|
|
_status = json['status'];
|
|
_createdAt = json['created_at'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
var map = <String, dynamic>{};
|
|
map['url'] = _url;
|
|
if (_thumbnail != null) {
|
|
map['thumbnail'] = _thumbnail?.toJson();
|
|
}
|
|
if (_categories != null) {
|
|
map['categories'] = _categories?.map((v) => v.toJson()).toList();
|
|
}
|
|
map['author'] = _author;
|
|
map['title'] = _title;
|
|
map['content'] = _content;
|
|
map['summary'] = _summary;
|
|
map['as_special'] = _asSpecial;
|
|
map['status'] = _status;
|
|
map['created_at'] = _createdAt;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
class Categories {
|
|
String? _name;
|
|
String? _url;
|
|
|
|
String? get name => _name;
|
|
|
|
String? get url => _url;
|
|
|
|
Categories({String? name, String? url}) {
|
|
_name = name;
|
|
_url = url;
|
|
}
|
|
|
|
Categories.fromJson(dynamic json) {
|
|
_name = json['name'];
|
|
_url = json['url'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
var map = <String, dynamic>{};
|
|
map['name'] = _name;
|
|
map['url'] = _url;
|
|
return map;
|
|
}
|
|
}
|