video_zone_item.dart 854 Bytes
class VideoZoneItem {
  const VideoZoneItem({
    required this.id,
    required this.name,
    required this.coverUrl,
    required this.videoUrl,
    required this.accessible,
  });

  factory VideoZoneItem.fromJson(Map<String, dynamic> json) {
    int toInt(dynamic value) =>
        value is num ? value.toInt() : int.tryParse('$value') ?? 0;
    bool toBool(dynamic value) =>
        value == true || value == 1 || value?.toString() == 'true';

    return VideoZoneItem(
      id: toInt(json['id']),
      name: json['name']?.toString() ?? '',
      coverUrl: json['coverUrl']?.toString() ?? '',
      videoUrl: json['videoUrl']?.toString() ?? '',
      accessible: toBool(json['accessible']),
    );
  }

  final int id;
  final String name;
  final String coverUrl;
  final String videoUrl;
  final bool accessible;

  String get title => name;
}