Sonnat Project
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

  1. import 'package:sonnat/features/single_post/view_models/thumbnail.dart';
  2. class Post {
  3. String? _url;
  4. Thumbnails? _thumbnail;
  5. List<Categories>? _categories;
  6. String? _author;
  7. String? _title;
  8. String? _content;
  9. String? _summary;
  10. bool? _asSpecial;
  11. bool? _status;
  12. String? _createdAt;
  13. String? get url => _url;
  14. Thumbnails? get thumbnail => _thumbnail;
  15. List<Categories>? get categories => _categories;
  16. String? get author => _author;
  17. String? get title => _title;
  18. String? get content => _content;
  19. String? get summary => _summary;
  20. bool? get asSpecial => _asSpecial;
  21. bool? get status => _status;
  22. String? get createdAt => _createdAt;
  23. Post(
  24. {String? url,
  25. Thumbnails? thumbnail,
  26. List<Categories>? categories,
  27. String? author,
  28. String? title,
  29. String? content,
  30. String? summary,
  31. bool? asSpecial,
  32. bool? status,
  33. String? createdAt}) {
  34. _url = url;
  35. _thumbnail = thumbnail;
  36. _categories = categories;
  37. _author = author;
  38. _title = title;
  39. _content = content;
  40. _summary = summary;
  41. _asSpecial = asSpecial;
  42. _status = status;
  43. _createdAt = createdAt;
  44. }
  45. Post.fromJson(dynamic json) {
  46. _url = json['url'];
  47. _thumbnail = json['thumbnail'] != null ? Thumbnails.fromJson(json['thumbnail']) : null;
  48. if (json['categories'] != null) {
  49. _categories = [];
  50. json['categories'].forEach((v) {
  51. _categories?.add(Categories.fromJson(v));
  52. });
  53. }
  54. _author = json['author'];
  55. _title = json['title'];
  56. _content = json['content'];
  57. _summary = json['summary'];
  58. _asSpecial = json['as_special'];
  59. _status = json['status'];
  60. _createdAt = json['created_at'];
  61. }
  62. Map<String, dynamic> toJson() {
  63. var map = <String, dynamic>{};
  64. map['url'] = _url;
  65. if (_thumbnail != null) {
  66. map['thumbnail'] = _thumbnail?.toJson();
  67. }
  68. if (_categories != null) {
  69. map['categories'] = _categories?.map((v) => v.toJson()).toList();
  70. }
  71. map['author'] = _author;
  72. map['title'] = _title;
  73. map['content'] = _content;
  74. map['summary'] = _summary;
  75. map['as_special'] = _asSpecial;
  76. map['status'] = _status;
  77. map['created_at'] = _createdAt;
  78. return map;
  79. }
  80. }
  81. class Categories {
  82. String? _name;
  83. String? _url;
  84. String? get name => _name;
  85. String? get url => _url;
  86. Categories({String? name, String? url}) {
  87. _name = name;
  88. _url = url;
  89. }
  90. Categories.fromJson(dynamic json) {
  91. _name = json['name'];
  92. _url = json['url'];
  93. }
  94. Map<String, dynamic> toJson() {
  95. var map = <String, dynamic>{};
  96. map['name'] = _name;
  97. map['url'] = _url;
  98. return map;
  99. }
  100. }