PMU_2024/lib/data/dtos/news_dto.dart

64 lines
1.7 KiB
Dart
Raw Normal View History

2024-09-25 15:53:40 +04:00
import 'package:json_annotation/json_annotation.dart';
2024-09-25 15:53:40 +04:00
part 'news_dto.g.dart';
2024-12-20 11:40:46 +04:00
//сборник классов, необходимых для десериализации с методами fromJson созданными автоматически в g файле. классы paginationdto, metadto - нахрен не упали насколько я понимаю
2024-09-25 15:53:40 +04:00
@JsonSerializable(createToJson: false)
class NewsDto {
@JsonKey(name: 'articles')
final List<NewAttributesDataDto>? data;
2024-12-20 11:40:46 +04:00
// final MetaDto? meta;
2024-09-25 15:53:40 +04:00
const NewsDto({
this.data,
2024-12-20 11:40:46 +04:00
// this.meta,
});
2024-12-20 11:40:46 +04:00
factory NewsDto.fromJson(Map<String, dynamic> json) =>
_$NewsDtoFromJson(json);
}
2024-09-25 15:53:40 +04:00
@JsonSerializable(createToJson: false)
class NewAttributesDataDto {
2024-09-25 15:53:40 +04:00
final String? title;
final String? description;
@JsonKey(name: 'urlToImage')
2024-09-25 15:53:40 +04:00
final String? imagelink;
2024-10-15 23:16:39 +04:00
@JsonKey(name: 'url')
final String? id;
2024-12-20 11:40:46 +04:00
@JsonKey(name: 'publishedAt')
final String date;
const NewAttributesDataDto({
this.id,
this.title,
this.description,
this.imagelink,
required this.date
});
factory NewAttributesDataDto.fromJson(Map<String, dynamic> json) =>
_$NewAttributesDataDtoFromJson(json);
}
2024-12-20 11:40:46 +04:00
//
// @JsonSerializable(createToJson: false)
// class MetaDto {
// final PaginationDto? pagination;
//
// const MetaDto({this.pagination});
//
// factory MetaDto.fromJson(Map<String, dynamic> json) =>
// _$MetaDtoFromJson(json);
// }
//
// @JsonSerializable(createToJson: false)
// class PaginationDto {
// final int? current;
// final int? next;
// final int? last;
//
// const PaginationDto({this.current, this.next, this.last});
//
// factory PaginationDto.fromJson(Map<String, dynamic> json) =>
// _$PaginationDtoFromJson(json);
// }