From a9053430ba3b6040e8fea4746fa7a0a8664dfa2f Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Wed, 18 Aug 2021 13:50:41 -0400 Subject: [PATCH] Add channel (stream) model --- lib/models/channel.dart | 27 +++++++++++++++++++++++++++ lib/models/channel.g.dart | 26 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 lib/models/channel.dart create mode 100644 lib/models/channel.g.dart diff --git a/lib/models/channel.dart b/lib/models/channel.dart new file mode 100644 index 00000000..8294539b --- /dev/null +++ b/lib/models/channel.dart @@ -0,0 +1,27 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'channel.g.dart'; + +// Twitch Channels (Streams) +@JsonSerializable(createToJson: false, fieldRename: FieldRename.snake) +class Channel { + final String id; + final String userId; + final String userLogin; + final String userName; + final String gameId; + final String gameName; + final String type; + final String title; + final int viewerCount; + final String startedAt; + final String language; + final String thumbnailUrl; + final List tagIds; + final bool isMature; + + Channel(this.id, this.userId, this.userLogin, this.userName, this.gameId, this.gameName, this.type, this.title, this.viewerCount, this.startedAt, + this.language, this.thumbnailUrl, this.tagIds, this.isMature); + + factory Channel.fromJson(Map json) => _$ChannelFromJson(json); +} diff --git a/lib/models/channel.g.dart b/lib/models/channel.g.dart new file mode 100644 index 00000000..e601c81d --- /dev/null +++ b/lib/models/channel.g.dart @@ -0,0 +1,26 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'channel.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Channel _$ChannelFromJson(Map json) { + return Channel( + json['id'] as String, + json['user_id'] as String, + json['user_login'] as String, + json['user_name'] as String, + json['game_id'] as String, + json['game_name'] as String, + json['type'] as String, + json['title'] as String, + json['viewer_count'] as int, + json['started_at'] as String, + json['language'] as String, + json['thumbnail_url'] as String, + (json['tag_ids'] as List).map((e) => e as String).toList(), + json['is_mature'] as bool, + ); +}