51 lines
1.2 KiB
Dart
51 lines
1.2 KiB
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
|
|
import 'mixins/multi_server_fields.dart';
|
|
|
|
part 'plex_library.g.dart';
|
|
|
|
@JsonSerializable()
|
|
class PlexLibrary with MultiServerFields {
|
|
final String key;
|
|
final String title;
|
|
final String type;
|
|
final String? agent;
|
|
final String? scanner;
|
|
final String? language;
|
|
final String? uuid;
|
|
final int? updatedAt;
|
|
final int? createdAt;
|
|
final int? hidden;
|
|
|
|
// Multi-server support fields (from MultiServerFields mixin)
|
|
@override
|
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
final String? serverId;
|
|
@override
|
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
final String? serverName;
|
|
|
|
/// Global unique identifier across all servers (serverId:key)
|
|
String get globalKey => serverId != null ? '$serverId:$key' : key;
|
|
|
|
PlexLibrary({
|
|
required this.key,
|
|
required this.title,
|
|
required this.type,
|
|
this.agent,
|
|
this.scanner,
|
|
this.language,
|
|
this.uuid,
|
|
this.updatedAt,
|
|
this.createdAt,
|
|
this.hidden,
|
|
this.serverId,
|
|
this.serverName,
|
|
});
|
|
|
|
factory PlexLibrary.fromJson(Map<String, dynamic> json) =>
|
|
_$PlexLibraryFromJson(json);
|
|
|
|
Map<String, dynamic> toJson() => _$PlexLibraryToJson(this);
|
|
}
|