class StreamEntry { final String title; final String url; final String? logo; // optional TVG logo URL StreamEntry({required this.title, required this.url, this.logo}); StreamEntry copyWith({String? title, String? url, String? logo}) => StreamEntry( title: title ?? this.title, url: url ?? this.url, logo: logo ?? this.logo); @override String toString() => 'StreamEntry(title: $title, url: $url, logo: $logo)'; @override bool operator ==(Object other) => identical(this, other) || other is StreamEntry && runtimeType == other.runtimeType && title == other.title && url == other.url && logo == other.logo; @override int get hashCode => title.hashCode ^ url.hashCode ^ (logo?.hashCode ?? 0); }