import 'package:simplecloudnotifier/models/subscription.dart'; class Channel { final String channelID; final String ownerUserID; final String internalName; final String displayName; final String? descriptionName; final String? subscribeKey; final String timestampCreated; final String? timestampLastSent; final int messagesSent; const Channel({ required this.channelID, required this.ownerUserID, required this.internalName, required this.displayName, required this.descriptionName, required this.subscribeKey, required this.timestampCreated, required this.timestampLastSent, required this.messagesSent, }); factory Channel.fromJson(Map json) { return Channel( channelID: json['channel_id'] as String, ownerUserID: json['owner_user_id'] as String, internalName: json['internal_name'] as String, displayName: json['display_name'] as String, descriptionName: json['description_name'] as String?, subscribeKey: json['subscribe_key'] as String?, timestampCreated: json['timestamp_created'] as String, timestampLastSent: json['timestamp_lastsent'] as String?, messagesSent: json['messages_sent'] as int, ); } } class ChannelWithSubscription extends Channel { final Subscription subscription; ChannelWithSubscription({ required super.channelID, required super.ownerUserID, required super.internalName, required super.displayName, required super.descriptionName, required super.subscribeKey, required super.timestampCreated, required super.timestampLastSent, required super.messagesSent, required this.subscription, }); factory ChannelWithSubscription.fromJson(Map json) { return ChannelWithSubscription( channelID: json['channel_id'] as String, ownerUserID: json['owner_user_id'] as String, internalName: json['internal_name'] as String, displayName: json['display_name'] as String, descriptionName: json['description_name'] as String?, subscribeKey: json['subscribe_key'] as String?, timestampCreated: json['timestamp_created'] as String, timestampLastSent: json['timestamp_lastsent'] as String?, messagesSent: json['messages_sent'] as int, subscription: Subscription.fromJson(json['subscription'] as Map), ); } static List fromJsonArray(List jsonArr) { return jsonArr.map((e) => ChannelWithSubscription.fromJson(e as Map)).toList(); } }