26 lines
638 B
Dart
26 lines
638 B
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'opds_link.freezed.dart';
|
|
part 'opds_link.g.dart';
|
|
|
|
/// Represents a link in an OPDS feed
|
|
@freezed
|
|
class OPDSLink with _$OPDSLink {
|
|
const factory OPDSLink({
|
|
/// Link relation type (e.g., 'self', 'start', 'subsection', 'http://opds-spec.org/acquisition')
|
|
required String rel,
|
|
|
|
/// Link URL
|
|
required String href,
|
|
|
|
/// MIME type of the linked resource
|
|
String? type,
|
|
|
|
/// Link title
|
|
String? title,
|
|
}) = _OPDSLink;
|
|
|
|
/// Create OPDSLink from JSON
|
|
factory OPDSLink.fromJson(Map<String, dynamic> json) =>
|
|
_$OPDSLinkFromJson(json);
|
|
}
|