refactor: reduce model and focus boilerplate
This commit is contained in:
@@ -7,7 +7,7 @@ class LiveTvHubResult {
|
||||
final String hubKey;
|
||||
final List<LiveTvHubEntry> entries;
|
||||
|
||||
LiveTvHubResult({required this.title, required this.hubKey, required this.entries});
|
||||
const LiveTvHubResult({required this.title, required this.hubKey, required this.entries});
|
||||
}
|
||||
|
||||
/// A single item in a live TV hub, holding both display metadata and EPG timing.
|
||||
@@ -15,5 +15,5 @@ class LiveTvHubEntry {
|
||||
final MediaItem metadata;
|
||||
final LiveTvProgram program;
|
||||
|
||||
LiveTvHubEntry({required this.metadata, required this.program});
|
||||
const LiveTvHubEntry({required this.metadata, required this.program});
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'mpv_config_models.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class MpvPreset {
|
||||
final String name;
|
||||
final String text;
|
||||
@@ -5,13 +10,7 @@ class MpvPreset {
|
||||
|
||||
const MpvPreset({required this.name, required this.text, required this.createdAt});
|
||||
|
||||
factory MpvPreset.fromJson(Map<String, dynamic> json) {
|
||||
return MpvPreset(
|
||||
name: json['name'] as String,
|
||||
text: json['text'] as String,
|
||||
createdAt: DateTime.parse(json['createdAt'] as String),
|
||||
);
|
||||
}
|
||||
factory MpvPreset.fromJson(Map<String, dynamic> json) => _$MpvPresetFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => {'name': name, 'text': text, 'createdAt': createdAt.toIso8601String()};
|
||||
Map<String, dynamic> toJson() => _$MpvPresetToJson(this);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'mpv_config_models.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
MpvPreset _$MpvPresetFromJson(Map<String, dynamic> json) => MpvPreset(
|
||||
name: json['name'] as String,
|
||||
text: json['text'] as String,
|
||||
createdAt: DateTime.parse(json['createdAt'] as String),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$MpvPresetToJson(MpvPreset instance) => <String, dynamic>{
|
||||
'name': instance.name,
|
||||
'text': instance.text,
|
||||
'createdAt': instance.createdAt.toIso8601String(),
|
||||
};
|
||||
@@ -1,9 +1,14 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
import '../../utils/external_ids.dart';
|
||||
|
||||
part 'trakt_ids.g.dart';
|
||||
|
||||
/// External IDs for matching Plex items against Trakt's catalog.
|
||||
///
|
||||
/// Trakt prefers (in order): trakt > slug > imdb > tmdb > tvdb. Movies use
|
||||
/// imdb/tmdb; episodes use the show's tvdb/tmdb/imdb plus season/episode index.
|
||||
@JsonSerializable(includeIfNull: false)
|
||||
class TraktIds {
|
||||
final int? trakt;
|
||||
final String? slug;
|
||||
@@ -16,21 +21,9 @@ class TraktIds {
|
||||
/// True when at least one external ID is set (i.e. usable for Trakt matching).
|
||||
bool get hasAny => imdb != null || tmdb != null || tvdb != null || trakt != null || slug != null;
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
if (trakt != null) 'trakt': trakt,
|
||||
if (slug != null) 'slug': slug,
|
||||
if (imdb != null) 'imdb': imdb,
|
||||
if (tmdb != null) 'tmdb': tmdb,
|
||||
if (tvdb != null) 'tvdb': tvdb,
|
||||
};
|
||||
Map<String, dynamic> toJson() => _$TraktIdsToJson(this);
|
||||
|
||||
factory TraktIds.fromJson(Map<String, dynamic> json) => TraktIds(
|
||||
trakt: (json['trakt'] as num?)?.toInt(),
|
||||
slug: json['slug'] as String?,
|
||||
imdb: json['imdb'] as String?,
|
||||
tmdb: (json['tmdb'] as num?)?.toInt(),
|
||||
tvdb: (json['tvdb'] as num?)?.toInt(),
|
||||
);
|
||||
factory TraktIds.fromJson(Map<String, dynamic> json) => _$TraktIdsFromJson(json);
|
||||
|
||||
factory TraktIds.fromExternal(ExternalIds ids) => TraktIds(imdb: ids.imdb, tmdb: ids.tmdb, tvdb: ids.tvdb);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'trakt_ids.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
TraktIds _$TraktIdsFromJson(Map<String, dynamic> json) => TraktIds(
|
||||
trakt: (json['trakt'] as num?)?.toInt(),
|
||||
slug: json['slug'] as String?,
|
||||
imdb: json['imdb'] as String?,
|
||||
tmdb: (json['tmdb'] as num?)?.toInt(),
|
||||
tvdb: (json['tvdb'] as num?)?.toInt(),
|
||||
);
|
||||
|
||||
Map<String, dynamic> _$TraktIdsToJson(TraktIds instance) => <String, dynamic>{
|
||||
'trakt': ?instance.trakt,
|
||||
'slug': ?instance.slug,
|
||||
'imdb': ?instance.imdb,
|
||||
'tmdb': ?instance.tmdb,
|
||||
'tvdb': ?instance.tvdb,
|
||||
};
|
||||
Reference in New Issue
Block a user