ToneSnap_FSX_Flutter/lib/data/models/next_model.dart
fengshengxiong c7cbdb04be 个人曲库
2024-07-14 16:13:46 +08:00

2572 lines
77 KiB
Dart

// Author: fengshengxiong
// Date: 2024/6/23
// Description: next模型
import 'dart:convert';
class NextModel {
ResponseContext? responseContext;
Contents? contents;
CurrentVideoEndpoint? currentVideoEndpoint;
String? trackingParams;
PlayerOverlays? playerOverlays;
VideoReporting? videoReporting;
String? queueContextParams;
NextModel({
this.responseContext,
this.contents,
this.currentVideoEndpoint,
this.trackingParams,
this.playerOverlays,
this.videoReporting,
this.queueContextParams,
});
factory NextModel.fromJson(String str) => NextModel.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory NextModel.fromMap(Map<String, dynamic> json) => NextModel(
responseContext: json["responseContext"] == null ? null : ResponseContext.fromMap(json["responseContext"]),
contents: json["contents"] == null ? null : Contents.fromMap(json["contents"]),
currentVideoEndpoint: json["currentVideoEndpoint"] == null ? null : CurrentVideoEndpoint.fromMap(json["currentVideoEndpoint"]),
trackingParams: json["trackingParams"],
playerOverlays: json["playerOverlays"] == null ? null : PlayerOverlays.fromMap(json["playerOverlays"]),
videoReporting: json["videoReporting"] == null ? null : VideoReporting.fromMap(json["videoReporting"]),
queueContextParams: json["queueContextParams"],
);
Map<String, dynamic> toMap() => {
"responseContext": responseContext?.toMap(),
"contents": contents?.toMap(),
"currentVideoEndpoint": currentVideoEndpoint?.toMap(),
"trackingParams": trackingParams,
"playerOverlays": playerOverlays?.toMap(),
"videoReporting": videoReporting?.toMap(),
"queueContextParams": queueContextParams,
};
}
class Contents {
SingleColumnMusicWatchNextResultsRenderer? singleColumnMusicWatchNextResultsRenderer;
Contents({
this.singleColumnMusicWatchNextResultsRenderer,
});
factory Contents.fromJson(String str) => Contents.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Contents.fromMap(Map<String, dynamic> json) => Contents(
singleColumnMusicWatchNextResultsRenderer: json["singleColumnMusicWatchNextResultsRenderer"] == null ? null : SingleColumnMusicWatchNextResultsRenderer.fromMap(json["singleColumnMusicWatchNextResultsRenderer"]),
);
Map<String, dynamic> toMap() => {
"singleColumnMusicWatchNextResultsRenderer": singleColumnMusicWatchNextResultsRenderer?.toMap(),
};
}
class SingleColumnMusicWatchNextResultsRenderer {
TabbedRenderer? tabbedRenderer;
SingleColumnMusicWatchNextResultsRenderer({
this.tabbedRenderer,
});
factory SingleColumnMusicWatchNextResultsRenderer.fromJson(String str) => SingleColumnMusicWatchNextResultsRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SingleColumnMusicWatchNextResultsRenderer.fromMap(Map<String, dynamic> json) => SingleColumnMusicWatchNextResultsRenderer(
tabbedRenderer: json["tabbedRenderer"] == null ? null : TabbedRenderer.fromMap(json["tabbedRenderer"]),
);
Map<String, dynamic> toMap() => {
"tabbedRenderer": tabbedRenderer?.toMap(),
};
}
class TabbedRenderer {
WatchNextTabbedResultsRenderer? watchNextTabbedResultsRenderer;
TabbedRenderer({
this.watchNextTabbedResultsRenderer,
});
factory TabbedRenderer.fromJson(String str) => TabbedRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TabbedRenderer.fromMap(Map<String, dynamic> json) => TabbedRenderer(
watchNextTabbedResultsRenderer: json["watchNextTabbedResultsRenderer"] == null ? null : WatchNextTabbedResultsRenderer.fromMap(json["watchNextTabbedResultsRenderer"]),
);
Map<String, dynamic> toMap() => {
"watchNextTabbedResultsRenderer": watchNextTabbedResultsRenderer?.toMap(),
};
}
class WatchNextTabbedResultsRenderer {
List<Tab>? tabs;
WatchNextTabbedResultsRenderer({
this.tabs,
});
factory WatchNextTabbedResultsRenderer.fromJson(String str) => WatchNextTabbedResultsRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory WatchNextTabbedResultsRenderer.fromMap(Map<String, dynamic> json) => WatchNextTabbedResultsRenderer(
tabs: json["tabs"] == null ? [] : List<Tab>.from(json["tabs"]!.map((x) => Tab.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"tabs": tabs == null ? [] : List<dynamic>.from(tabs!.map((x) => x.toMap())),
};
}
class Tab {
TabRenderer? tabRenderer;
Tab({
this.tabRenderer,
});
factory Tab.fromJson(String str) => Tab.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Tab.fromMap(Map<String, dynamic> json) => Tab(
tabRenderer: json["tabRenderer"] == null ? null : TabRenderer.fromMap(json["tabRenderer"]),
);
Map<String, dynamic> toMap() => {
"tabRenderer": tabRenderer?.toMap(),
};
}
class TabRenderer {
String? title;
TabRendererContent? content;
String? trackingParams;
Endpoint? endpoint;
TabRenderer({
this.title,
this.content,
this.trackingParams,
this.endpoint,
});
factory TabRenderer.fromJson(String str) => TabRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TabRenderer.fromMap(Map<String, dynamic> json) => TabRenderer(
title: json["title"],
content: json["content"] == null ? null : TabRendererContent.fromMap(json["content"]),
trackingParams: json["trackingParams"],
endpoint: json["endpoint"] == null ? null : Endpoint.fromMap(json["endpoint"]),
);
Map<String, dynamic> toMap() => {
"title": title,
"content": content?.toMap(),
"trackingParams": trackingParams,
"endpoint": endpoint?.toMap(),
};
}
class TabRendererContent {
MusicQueueRenderer? musicQueueRenderer;
TabRendererContent({
this.musicQueueRenderer,
});
factory TabRendererContent.fromJson(String str) => TabRendererContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TabRendererContent.fromMap(Map<String, dynamic> json) => TabRendererContent(
musicQueueRenderer: json["musicQueueRenderer"] == null ? null : MusicQueueRenderer.fromMap(json["musicQueueRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicQueueRenderer": musicQueueRenderer?.toMap(),
};
}
class MusicQueueRenderer {
MusicQueueRendererContent? content;
bool? hack;
Header? header;
SubHeaderChipCloud? subHeaderChipCloud;
MusicQueueRenderer({
this.content,
this.hack,
this.header,
this.subHeaderChipCloud,
});
factory MusicQueueRenderer.fromJson(String str) => MusicQueueRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicQueueRenderer.fromMap(Map<String, dynamic> json) => MusicQueueRenderer(
content: json["content"] == null ? null : MusicQueueRendererContent.fromMap(json["content"]),
hack: json["hack"],
header: json["header"] == null ? null : Header.fromMap(json["header"]),
subHeaderChipCloud: json["subHeaderChipCloud"] == null ? null : SubHeaderChipCloud.fromMap(json["subHeaderChipCloud"]),
);
Map<String, dynamic> toMap() => {
"content": content?.toMap(),
"hack": hack,
"header": header?.toMap(),
"subHeaderChipCloud": subHeaderChipCloud?.toMap(),
};
}
class MusicQueueRendererContent {
PlaylistPanelRenderer? playlistPanelRenderer;
MusicQueueRendererContent({
this.playlistPanelRenderer,
});
factory MusicQueueRendererContent.fromJson(String str) => MusicQueueRendererContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicQueueRendererContent.fromMap(Map<String, dynamic> json) => MusicQueueRendererContent(
playlistPanelRenderer: json["playlistPanelRenderer"] == null ? null : PlaylistPanelRenderer.fromMap(json["playlistPanelRenderer"]),
);
Map<String, dynamic> toMap() => {
"playlistPanelRenderer": playlistPanelRenderer?.toMap(),
};
}
class PlaylistPanelRenderer {
String? title;
List<ContentElement>? contents;
String? playlistId;
bool? isInfinite;
List<Continuation>? continuations;
Title? shortBylineText;
String? trackingParams;
Title? titleText;
PreviewDescription? previewDescription;
int? numItemsToShow;
PlaylistPanelRenderer({
this.title,
this.contents,
this.playlistId,
this.isInfinite,
this.continuations,
this.shortBylineText,
this.trackingParams,
this.titleText,
this.previewDescription,
this.numItemsToShow,
});
factory PlaylistPanelRenderer.fromJson(String str) => PlaylistPanelRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PlaylistPanelRenderer.fromMap(Map<String, dynamic> json) => PlaylistPanelRenderer(
title: json["title"],
contents: json["contents"] == null ? [] : List<ContentElement>.from(json["contents"]!.map((x) => ContentElement.fromMap(x))),
playlistId: json["playlistId"],
isInfinite: json["isInfinite"],
continuations: json["continuations"] == null ? [] : List<Continuation>.from(json["continuations"]!.map((x) => Continuation.fromMap(x))),
shortBylineText: json["shortBylineText"] == null ? null : Title.fromMap(json["shortBylineText"]),
trackingParams: json["trackingParams"],
titleText: json["titleText"] == null ? null : Title.fromMap(json["titleText"]),
previewDescription: json["previewDescription"] == null ? null : PreviewDescription.fromMap(json["previewDescription"]),
numItemsToShow: json["numItemsToShow"],
);
Map<String, dynamic> toMap() => {
"title": title,
"contents": contents == null ? [] : List<dynamic>.from(contents!.map((x) => x.toMap())),
"playlistId": playlistId,
"isInfinite": isInfinite,
"continuations": continuations == null ? [] : List<dynamic>.from(continuations!.map((x) => x.toMap())),
"shortBylineText": shortBylineText?.toMap(),
"trackingParams": trackingParams,
"titleText": titleText?.toMap(),
"previewDescription": previewDescription?.toMap(),
"numItemsToShow": numItemsToShow,
};
}
class ContentElement {
PlaylistPanelVideoRenderer? playlistPanelVideoRenderer;
ContentElement({
this.playlistPanelVideoRenderer,
});
factory ContentElement.fromJson(String str) => ContentElement.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ContentElement.fromMap(Map<String, dynamic> json) => ContentElement(
playlistPanelVideoRenderer: json["playlistPanelVideoRenderer"] == null ? null : PlaylistPanelVideoRenderer.fromMap(json["playlistPanelVideoRenderer"]),
);
Map<String, dynamic> toMap() => {
"playlistPanelVideoRenderer": playlistPanelVideoRenderer?.toMap(),
};
}
class PlaylistPanelVideoRenderer {
Title? title;
LongBylineText? longBylineText;
ThumbnailDetailsClass? thumbnail;
LengthText? lengthText;
bool? selected;
PlaylistPanelVideoRendererNavigationEndpoint? navigationEndpoint;
String? videoId;
Title? shortBylineText;
String? trackingParams;
Menu? menu;
String? playlistSetVideoId;
bool? canReorder;
PlaylistPanelVideoRenderer({
this.title,
this.longBylineText,
this.thumbnail,
this.lengthText,
this.selected,
this.navigationEndpoint,
this.videoId,
this.shortBylineText,
this.trackingParams,
this.menu,
this.playlistSetVideoId,
this.canReorder,
});
factory PlaylistPanelVideoRenderer.fromJson(String str) => PlaylistPanelVideoRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PlaylistPanelVideoRenderer.fromMap(Map<String, dynamic> json) => PlaylistPanelVideoRenderer(
title: json["title"] == null ? null : Title.fromMap(json["title"]),
longBylineText: json["longBylineText"] == null ? null : LongBylineText.fromMap(json["longBylineText"]),
thumbnail: json["thumbnail"] == null ? null : ThumbnailDetailsClass.fromMap(json["thumbnail"]),
lengthText: json["lengthText"] == null ? null : LengthText.fromMap(json["lengthText"]),
selected: json["selected"],
navigationEndpoint: json["navigationEndpoint"] == null ? null : PlaylistPanelVideoRendererNavigationEndpoint.fromMap(json["navigationEndpoint"]),
videoId: json["videoId"],
shortBylineText: json["shortBylineText"] == null ? null : Title.fromMap(json["shortBylineText"]),
trackingParams: json["trackingParams"],
menu: json["menu"] == null ? null : Menu.fromMap(json["menu"]),
playlistSetVideoId: json["playlistSetVideoId"],
canReorder: json["canReorder"],
);
Map<String, dynamic> toMap() => {
"title": title?.toMap(),
"longBylineText": longBylineText?.toMap(),
"thumbnail": thumbnail?.toMap(),
"lengthText": lengthText?.toMap(),
"selected": selected,
"navigationEndpoint": navigationEndpoint?.toMap(),
"videoId": videoId,
"shortBylineText": shortBylineText?.toMap(),
"trackingParams": trackingParams,
"menu": menu?.toMap(),
"playlistSetVideoId": playlistSetVideoId,
"canReorder": canReorder,
};
}
class LengthText {
List<LengthTextRun>? runs;
Accessibility? accessibility;
LengthText({
this.runs,
this.accessibility,
});
factory LengthText.fromJson(String str) => LengthText.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LengthText.fromMap(Map<String, dynamic> json) => LengthText(
runs: json["runs"] == null ? [] : List<LengthTextRun>.from(json["runs"]!.map((x) => LengthTextRun.fromMap(x))),
accessibility: json["accessibility"] == null ? null : Accessibility.fromMap(json["accessibility"]),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
"accessibility": accessibility?.toMap(),
};
}
class Accessibility {
AccessibilityData? accessibilityData;
Accessibility({
this.accessibilityData,
});
factory Accessibility.fromJson(String str) => Accessibility.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Accessibility.fromMap(Map<String, dynamic> json) => Accessibility(
accessibilityData: json["accessibilityData"] == null ? null : AccessibilityData.fromMap(json["accessibilityData"]),
);
Map<String, dynamic> toMap() => {
"accessibilityData": accessibilityData?.toMap(),
};
}
class AccessibilityData {
String? label;
AccessibilityData({
this.label,
});
factory AccessibilityData.fromJson(String str) => AccessibilityData.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory AccessibilityData.fromMap(Map<String, dynamic> json) => AccessibilityData(
label: json["label"],
);
Map<String, dynamic> toMap() => {
"label": label,
};
}
class LengthTextRun {
String? text;
LengthTextRun({
this.text,
});
factory LengthTextRun.fromJson(String str) => LengthTextRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LengthTextRun.fromMap(Map<String, dynamic> json) => LengthTextRun(
text: json["text"],
);
Map<String, dynamic> toMap() => {
"text": text,
};
}
class LongBylineText {
List<LongBylineTextRun>? runs;
LongBylineText({
this.runs,
});
factory LongBylineText.fromJson(String str) => LongBylineText.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LongBylineText.fromMap(Map<String, dynamic> json) => LongBylineText(
runs: json["runs"] == null ? [] : List<LongBylineTextRun>.from(json["runs"]!.map((x) => LongBylineTextRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class LongBylineTextRun {
String? text;
Endpoint? navigationEndpoint;
LongBylineTextRun({
this.text,
this.navigationEndpoint,
});
factory LongBylineTextRun.fromJson(String str) => LongBylineTextRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LongBylineTextRun.fromMap(Map<String, dynamic> json) => LongBylineTextRun(
text: json["text"],
navigationEndpoint: json["navigationEndpoint"] == null ? null : Endpoint.fromMap(json["navigationEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text,
"navigationEndpoint": navigationEndpoint?.toMap(),
};
}
class Endpoint {
String? clickTrackingParams;
BrowseEndpoint? browseEndpoint;
Endpoint({
this.clickTrackingParams,
this.browseEndpoint,
});
factory Endpoint.fromJson(String str) => Endpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Endpoint.fromMap(Map<String, dynamic> json) => Endpoint(
clickTrackingParams: json["clickTrackingParams"],
browseEndpoint: json["browseEndpoint"] == null ? null : BrowseEndpoint.fromMap(json["browseEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"browseEndpoint": browseEndpoint?.toMap(),
};
}
class BrowseEndpoint {
String? browseId;
BrowseEndpointContextSupportedConfigs? browseEndpointContextSupportedConfigs;
BrowseEndpoint({
this.browseId,
this.browseEndpointContextSupportedConfigs,
});
factory BrowseEndpoint.fromJson(String str) => BrowseEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowseEndpoint.fromMap(Map<String, dynamic> json) => BrowseEndpoint(
browseId: json["browseId"],
browseEndpointContextSupportedConfigs: json["browseEndpointContextSupportedConfigs"] == null ? null : BrowseEndpointContextSupportedConfigs.fromMap(json["browseEndpointContextSupportedConfigs"]),
);
Map<String, dynamic> toMap() => {
"browseId": browseId,
"browseEndpointContextSupportedConfigs": browseEndpointContextSupportedConfigs?.toMap(),
};
}
class BrowseEndpointContextSupportedConfigs {
BrowseEndpointContextMusicConfig? browseEndpointContextMusicConfig;
BrowseEndpointContextSupportedConfigs({
this.browseEndpointContextMusicConfig,
});
factory BrowseEndpointContextSupportedConfigs.fromJson(String str) => BrowseEndpointContextSupportedConfigs.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowseEndpointContextSupportedConfigs.fromMap(Map<String, dynamic> json) => BrowseEndpointContextSupportedConfigs(
browseEndpointContextMusicConfig: json["browseEndpointContextMusicConfig"] == null ? null : BrowseEndpointContextMusicConfig.fromMap(json["browseEndpointContextMusicConfig"]),
);
Map<String, dynamic> toMap() => {
"browseEndpointContextMusicConfig": browseEndpointContextMusicConfig?.toMap(),
};
}
class BrowseEndpointContextMusicConfig {
String? pageType;
BrowseEndpointContextMusicConfig({
this.pageType,
});
factory BrowseEndpointContextMusicConfig.fromJson(String str) => BrowseEndpointContextMusicConfig.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowseEndpointContextMusicConfig.fromMap(Map<String, dynamic> json) => BrowseEndpointContextMusicConfig(
pageType: json["pageType"],
);
Map<String, dynamic> toMap() => {
"pageType": pageType,
};
}
class Menu {
MenuRenderer? menuRenderer;
Menu({
this.menuRenderer,
});
factory Menu.fromJson(String str) => Menu.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Menu.fromMap(Map<String, dynamic> json) => Menu(
menuRenderer: json["menuRenderer"] == null ? null : MenuRenderer.fromMap(json["menuRenderer"]),
);
Map<String, dynamic> toMap() => {
"menuRenderer": menuRenderer?.toMap(),
};
}
class MenuRenderer {
List<MenuRendererItem>? items;
String? trackingParams;
Accessibility? accessibility;
MenuRenderer({
this.items,
this.trackingParams,
this.accessibility,
});
factory MenuRenderer.fromJson(String str) => MenuRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MenuRenderer.fromMap(Map<String, dynamic> json) => MenuRenderer(
items: json["items"] == null ? [] : List<MenuRendererItem>.from(json["items"]!.map((x) => MenuRendererItem.fromMap(x))),
trackingParams: json["trackingParams"],
accessibility: json["accessibility"] == null ? null : Accessibility.fromMap(json["accessibility"]),
);
Map<String, dynamic> toMap() => {
"items": items == null ? [] : List<dynamic>.from(items!.map((x) => x.toMap())),
"trackingParams": trackingParams,
"accessibility": accessibility?.toMap(),
};
}
class MenuRendererItem {
MenuItemRenderer? menuNavigationItemRenderer;
MenuItemRenderer? menuServiceItemRenderer;
ToggleMenuServiceItemRenderer? toggleMenuServiceItemRenderer;
MenuRendererItem({
this.menuNavigationItemRenderer,
this.menuServiceItemRenderer,
this.toggleMenuServiceItemRenderer,
});
factory MenuRendererItem.fromJson(String str) => MenuRendererItem.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MenuRendererItem.fromMap(Map<String, dynamic> json) => MenuRendererItem(
menuNavigationItemRenderer: json["menuNavigationItemRenderer"] == null ? null : MenuItemRenderer.fromMap(json["menuNavigationItemRenderer"]),
menuServiceItemRenderer: json["menuServiceItemRenderer"] == null ? null : MenuItemRenderer.fromMap(json["menuServiceItemRenderer"]),
toggleMenuServiceItemRenderer: json["toggleMenuServiceItemRenderer"] == null ? null : ToggleMenuServiceItemRenderer.fromMap(json["toggleMenuServiceItemRenderer"]),
);
Map<String, dynamic> toMap() => {
"menuNavigationItemRenderer": menuNavigationItemRenderer?.toMap(),
"menuServiceItemRenderer": menuServiceItemRenderer?.toMap(),
"toggleMenuServiceItemRenderer": toggleMenuServiceItemRenderer?.toMap(),
};
}
class MenuItemRenderer {
Title? text;
Icon? icon;
MenuNavigationItemRendererNavigationEndpoint? navigationEndpoint;
String? trackingParams;
ServiceEndpoint? serviceEndpoint;
MenuItemRenderer({
this.text,
this.icon,
this.navigationEndpoint,
this.trackingParams,
this.serviceEndpoint,
});
factory MenuItemRenderer.fromJson(String str) => MenuItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MenuItemRenderer.fromMap(Map<String, dynamic> json) => MenuItemRenderer(
text: json["text"] == null ? null : Title.fromMap(json["text"]),
icon: json["icon"] == null ? null : Icon.fromMap(json["icon"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : MenuNavigationItemRendererNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
serviceEndpoint: json["serviceEndpoint"] == null ? null : ServiceEndpoint.fromMap(json["serviceEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text?.toMap(),
"icon": icon?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"serviceEndpoint": serviceEndpoint?.toMap(),
};
}
class Icon {
String? iconType;
Icon({
this.iconType,
});
factory Icon.fromJson(String str) => Icon.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Icon.fromMap(Map<String, dynamic> json) => Icon(
iconType: json["iconType"],
);
Map<String, dynamic> toMap() => {
"iconType": iconType,
};
}
class MenuNavigationItemRendererNavigationEndpoint {
String? clickTrackingParams;
PurpleWatchEndpoint? watchEndpoint;
ModalEndpoint? modalEndpoint;
BrowseEndpoint? browseEndpoint;
ShareEntityEndpoint? shareEntityEndpoint;
MenuNavigationItemRendererNavigationEndpoint({
this.clickTrackingParams,
this.watchEndpoint,
this.modalEndpoint,
this.browseEndpoint,
this.shareEntityEndpoint,
});
factory MenuNavigationItemRendererNavigationEndpoint.fromJson(String str) => MenuNavigationItemRendererNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MenuNavigationItemRendererNavigationEndpoint.fromMap(Map<String, dynamic> json) => MenuNavigationItemRendererNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : PurpleWatchEndpoint.fromMap(json["watchEndpoint"]),
modalEndpoint: json["modalEndpoint"] == null ? null : ModalEndpoint.fromMap(json["modalEndpoint"]),
browseEndpoint: json["browseEndpoint"] == null ? null : BrowseEndpoint.fromMap(json["browseEndpoint"]),
shareEntityEndpoint: json["shareEntityEndpoint"] == null ? null : ShareEntityEndpoint.fromMap(json["shareEntityEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
"modalEndpoint": modalEndpoint?.toMap(),
"browseEndpoint": browseEndpoint?.toMap(),
"shareEntityEndpoint": shareEntityEndpoint?.toMap(),
};
}
class ModalEndpoint {
Modal? modal;
ModalEndpoint({
this.modal,
});
factory ModalEndpoint.fromJson(String str) => ModalEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ModalEndpoint.fromMap(Map<String, dynamic> json) => ModalEndpoint(
modal: json["modal"] == null ? null : Modal.fromMap(json["modal"]),
);
Map<String, dynamic> toMap() => {
"modal": modal?.toMap(),
};
}
class Modal {
ModalWithTitleAndButtonRenderer? modalWithTitleAndButtonRenderer;
Modal({
this.modalWithTitleAndButtonRenderer,
});
factory Modal.fromJson(String str) => Modal.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Modal.fromMap(Map<String, dynamic> json) => Modal(
modalWithTitleAndButtonRenderer: json["modalWithTitleAndButtonRenderer"] == null ? null : ModalWithTitleAndButtonRenderer.fromMap(json["modalWithTitleAndButtonRenderer"]),
);
Map<String, dynamic> toMap() => {
"modalWithTitleAndButtonRenderer": modalWithTitleAndButtonRenderer?.toMap(),
};
}
class ModalWithTitleAndButtonRenderer {
Title? title;
Title? content;
CancelButtonClass? button;
ModalWithTitleAndButtonRenderer({
this.title,
this.content,
this.button,
});
factory ModalWithTitleAndButtonRenderer.fromJson(String str) => ModalWithTitleAndButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ModalWithTitleAndButtonRenderer.fromMap(Map<String, dynamic> json) => ModalWithTitleAndButtonRenderer(
title: json["title"] == null ? null : Title.fromMap(json["title"]),
content: json["content"] == null ? null : Title.fromMap(json["content"]),
button: json["button"] == null ? null : CancelButtonClass.fromMap(json["button"]),
);
Map<String, dynamic> toMap() => {
"title": title?.toMap(),
"content": content?.toMap(),
"button": button?.toMap(),
};
}
class CancelButtonClass {
ButtonRenderer? buttonRenderer;
CancelButtonClass({
this.buttonRenderer,
});
factory CancelButtonClass.fromJson(String str) => CancelButtonClass.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory CancelButtonClass.fromMap(Map<String, dynamic> json) => CancelButtonClass(
buttonRenderer: json["buttonRenderer"] == null ? null : ButtonRenderer.fromMap(json["buttonRenderer"]),
);
Map<String, dynamic> toMap() => {
"buttonRenderer": buttonRenderer?.toMap(),
};
}
class ButtonRenderer {
String? style;
bool? isDisabled;
Title? text;
ButtonRendererNavigationEndpoint? navigationEndpoint;
String? trackingParams;
ButtonRenderer({
this.style,
this.isDisabled,
this.text,
this.navigationEndpoint,
this.trackingParams,
});
factory ButtonRenderer.fromJson(String str) => ButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ButtonRenderer.fromMap(Map<String, dynamic> json) => ButtonRenderer(
style: json["style"],
isDisabled: json["isDisabled"],
text: json["text"] == null ? null : Title.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : ButtonRendererNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"style": style,
"isDisabled": isDisabled,
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
};
}
class ButtonRendererNavigationEndpoint {
String? clickTrackingParams;
SignInEndpoint? signInEndpoint;
ButtonRendererNavigationEndpoint({
this.clickTrackingParams,
this.signInEndpoint,
});
factory ButtonRendererNavigationEndpoint.fromJson(String str) => ButtonRendererNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ButtonRendererNavigationEndpoint.fromMap(Map<String, dynamic> json) => ButtonRendererNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
signInEndpoint: json["signInEndpoint"] == null ? null : SignInEndpoint.fromMap(json["signInEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"signInEndpoint": signInEndpoint?.toMap(),
};
}
class SignInEndpoint {
bool? hack;
SignInEndpoint({
this.hack,
});
factory SignInEndpoint.fromJson(String str) => SignInEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SignInEndpoint.fromMap(Map<String, dynamic> json) => SignInEndpoint(
hack: json["hack"],
);
Map<String, dynamic> toMap() => {
"hack": hack,
};
}
class Title {
List<LengthTextRun>? runs;
Title({
this.runs,
});
factory Title.fromJson(String str) => Title.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Title.fromMap(Map<String, dynamic> json) => Title(
runs: json["runs"] == null ? [] : List<LengthTextRun>.from(json["runs"]!.map((x) => LengthTextRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class ShareEntityEndpoint {
String? serializedShareEntity;
String? sharePanelType;
ShareEntityEndpoint({
this.serializedShareEntity,
this.sharePanelType,
});
factory ShareEntityEndpoint.fromJson(String str) => ShareEntityEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ShareEntityEndpoint.fromMap(Map<String, dynamic> json) => ShareEntityEndpoint(
serializedShareEntity: json["serializedShareEntity"],
sharePanelType: json["sharePanelType"],
);
Map<String, dynamic> toMap() => {
"serializedShareEntity": serializedShareEntity,
"sharePanelType": sharePanelType,
};
}
class PurpleWatchEndpoint {
String? videoId;
String? playlistId;
String? params;
LoggingContext? loggingContext;
PurpleWatchEndpointMusicSupportedConfigs? watchEndpointMusicSupportedConfigs;
PurpleWatchEndpoint({
this.videoId,
this.playlistId,
this.params,
this.loggingContext,
this.watchEndpointMusicSupportedConfigs,
});
factory PurpleWatchEndpoint.fromJson(String str) => PurpleWatchEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleWatchEndpoint.fromMap(Map<String, dynamic> json) => PurpleWatchEndpoint(
videoId: json["videoId"],
playlistId: json["playlistId"],
params: json["params"],
loggingContext: json["loggingContext"] == null ? null : LoggingContext.fromMap(json["loggingContext"]),
watchEndpointMusicSupportedConfigs: json["watchEndpointMusicSupportedConfigs"] == null ? null : PurpleWatchEndpointMusicSupportedConfigs.fromMap(json["watchEndpointMusicSupportedConfigs"]),
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"playlistId": playlistId,
"params": params,
"loggingContext": loggingContext?.toMap(),
"watchEndpointMusicSupportedConfigs": watchEndpointMusicSupportedConfigs?.toMap(),
};
}
class LoggingContext {
VssLoggingContext? vssLoggingContext;
LoggingContext({
this.vssLoggingContext,
});
factory LoggingContext.fromJson(String str) => LoggingContext.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LoggingContext.fromMap(Map<String, dynamic> json) => LoggingContext(
vssLoggingContext: json["vssLoggingContext"] == null ? null : VssLoggingContext.fromMap(json["vssLoggingContext"]),
);
Map<String, dynamic> toMap() => {
"vssLoggingContext": vssLoggingContext?.toMap(),
};
}
class VssLoggingContext {
String? serializedContextData;
VssLoggingContext({
this.serializedContextData,
});
factory VssLoggingContext.fromJson(String str) => VssLoggingContext.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory VssLoggingContext.fromMap(Map<String, dynamic> json) => VssLoggingContext(
serializedContextData: json["serializedContextData"],
);
Map<String, dynamic> toMap() => {
"serializedContextData": serializedContextData,
};
}
class PurpleWatchEndpointMusicSupportedConfigs {
PurpleWatchEndpointMusicConfig? watchEndpointMusicConfig;
PurpleWatchEndpointMusicSupportedConfigs({
this.watchEndpointMusicConfig,
});
factory PurpleWatchEndpointMusicSupportedConfigs.fromJson(String str) => PurpleWatchEndpointMusicSupportedConfigs.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleWatchEndpointMusicSupportedConfigs.fromMap(Map<String, dynamic> json) => PurpleWatchEndpointMusicSupportedConfigs(
watchEndpointMusicConfig: json["watchEndpointMusicConfig"] == null ? null : PurpleWatchEndpointMusicConfig.fromMap(json["watchEndpointMusicConfig"]),
);
Map<String, dynamic> toMap() => {
"watchEndpointMusicConfig": watchEndpointMusicConfig?.toMap(),
};
}
class PurpleWatchEndpointMusicConfig {
String? musicVideoType;
PurpleWatchEndpointMusicConfig({
this.musicVideoType,
});
factory PurpleWatchEndpointMusicConfig.fromJson(String str) => PurpleWatchEndpointMusicConfig.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleWatchEndpointMusicConfig.fromMap(Map<String, dynamic> json) => PurpleWatchEndpointMusicConfig(
musicVideoType: json["musicVideoType"],
);
Map<String, dynamic> toMap() => {
"musicVideoType": musicVideoType,
};
}
class ServiceEndpoint {
String? clickTrackingParams;
QueueAddEndpoint? queueAddEndpoint;
RemoveFromQueueEndpoint? removeFromQueueEndpoint;
ModalEndpoint? modalEndpoint;
ServiceEndpoint({
this.clickTrackingParams,
this.queueAddEndpoint,
this.removeFromQueueEndpoint,
this.modalEndpoint,
});
factory ServiceEndpoint.fromJson(String str) => ServiceEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ServiceEndpoint.fromMap(Map<String, dynamic> json) => ServiceEndpoint(
clickTrackingParams: json["clickTrackingParams"],
queueAddEndpoint: json["queueAddEndpoint"] == null ? null : QueueAddEndpoint.fromMap(json["queueAddEndpoint"]),
removeFromQueueEndpoint: json["removeFromQueueEndpoint"] == null ? null : RemoveFromQueueEndpoint.fromMap(json["removeFromQueueEndpoint"]),
modalEndpoint: json["modalEndpoint"] == null ? null : ModalEndpoint.fromMap(json["modalEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"queueAddEndpoint": queueAddEndpoint?.toMap(),
"removeFromQueueEndpoint": removeFromQueueEndpoint?.toMap(),
"modalEndpoint": modalEndpoint?.toMap(),
};
}
class QueueAddEndpoint {
QueueTarget? queueTarget;
String? queueInsertPosition;
List<Command>? commands;
QueueAddEndpoint({
this.queueTarget,
this.queueInsertPosition,
this.commands,
});
factory QueueAddEndpoint.fromJson(String str) => QueueAddEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory QueueAddEndpoint.fromMap(Map<String, dynamic> json) => QueueAddEndpoint(
queueTarget: json["queueTarget"] == null ? null : QueueTarget.fromMap(json["queueTarget"]),
queueInsertPosition: json["queueInsertPosition"],
commands: json["commands"] == null ? [] : List<Command>.from(json["commands"]!.map((x) => Command.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"queueTarget": queueTarget?.toMap(),
"queueInsertPosition": queueInsertPosition,
"commands": commands == null ? [] : List<dynamic>.from(commands!.map((x) => x.toMap())),
};
}
class Command {
String? clickTrackingParams;
AddToToastAction? addToToastAction;
Command({
this.clickTrackingParams,
this.addToToastAction,
});
factory Command.fromJson(String str) => Command.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Command.fromMap(Map<String, dynamic> json) => Command(
clickTrackingParams: json["clickTrackingParams"],
addToToastAction: json["addToToastAction"] == null ? null : AddToToastAction.fromMap(json["addToToastAction"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"addToToastAction": addToToastAction?.toMap(),
};
}
class AddToToastAction {
AddToToastActionItem? item;
AddToToastAction({
this.item,
});
factory AddToToastAction.fromJson(String str) => AddToToastAction.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory AddToToastAction.fromMap(Map<String, dynamic> json) => AddToToastAction(
item: json["item"] == null ? null : AddToToastActionItem.fromMap(json["item"]),
);
Map<String, dynamic> toMap() => {
"item": item?.toMap(),
};
}
class AddToToastActionItem {
NotificationTextRenderer? notificationTextRenderer;
AddToToastActionItem({
this.notificationTextRenderer,
});
factory AddToToastActionItem.fromJson(String str) => AddToToastActionItem.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory AddToToastActionItem.fromMap(Map<String, dynamic> json) => AddToToastActionItem(
notificationTextRenderer: json["notificationTextRenderer"] == null ? null : NotificationTextRenderer.fromMap(json["notificationTextRenderer"]),
);
Map<String, dynamic> toMap() => {
"notificationTextRenderer": notificationTextRenderer?.toMap(),
};
}
class NotificationTextRenderer {
Title? successResponseText;
String? trackingParams;
NotificationTextRenderer({
this.successResponseText,
this.trackingParams,
});
factory NotificationTextRenderer.fromJson(String str) => NotificationTextRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory NotificationTextRenderer.fromMap(Map<String, dynamic> json) => NotificationTextRenderer(
successResponseText: json["successResponseText"] == null ? null : Title.fromMap(json["successResponseText"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"successResponseText": successResponseText?.toMap(),
"trackingParams": trackingParams,
};
}
class QueueTarget {
String? videoId;
OnEmptyQueue? onEmptyQueue;
QueueTarget({
this.videoId,
this.onEmptyQueue,
});
factory QueueTarget.fromJson(String str) => QueueTarget.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory QueueTarget.fromMap(Map<String, dynamic> json) => QueueTarget(
videoId: json["videoId"],
onEmptyQueue: json["onEmptyQueue"] == null ? null : OnEmptyQueue.fromMap(json["onEmptyQueue"]),
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"onEmptyQueue": onEmptyQueue?.toMap(),
};
}
class OnEmptyQueue {
String? clickTrackingParams;
Target? watchEndpoint;
OnEmptyQueue({
this.clickTrackingParams,
this.watchEndpoint,
});
factory OnEmptyQueue.fromJson(String str) => OnEmptyQueue.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OnEmptyQueue.fromMap(Map<String, dynamic> json) => OnEmptyQueue(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : Target.fromMap(json["watchEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
};
}
class Target {
String? videoId;
Target({
this.videoId,
});
factory Target.fromJson(String str) => Target.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Target.fromMap(Map<String, dynamic> json) => Target(
videoId: json["videoId"],
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
};
}
class RemoveFromQueueEndpoint {
String? videoId;
List<Command>? commands;
RemoveFromQueueEndpoint({
this.videoId,
this.commands,
});
factory RemoveFromQueueEndpoint.fromJson(String str) => RemoveFromQueueEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory RemoveFromQueueEndpoint.fromMap(Map<String, dynamic> json) => RemoveFromQueueEndpoint(
videoId: json["videoId"],
commands: json["commands"] == null ? [] : List<Command>.from(json["commands"]!.map((x) => Command.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"commands": commands == null ? [] : List<dynamic>.from(commands!.map((x) => x.toMap())),
};
}
class ToggleMenuServiceItemRenderer {
Title? defaultText;
Icon? defaultIcon;
DislikeNavigationEndpoint? defaultServiceEndpoint;
Title? toggledText;
Icon? toggledIcon;
String? trackingParams;
ToggleMenuServiceItemRenderer({
this.defaultText,
this.defaultIcon,
this.defaultServiceEndpoint,
this.toggledText,
this.toggledIcon,
this.trackingParams,
});
factory ToggleMenuServiceItemRenderer.fromJson(String str) => ToggleMenuServiceItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ToggleMenuServiceItemRenderer.fromMap(Map<String, dynamic> json) => ToggleMenuServiceItemRenderer(
defaultText: json["defaultText"] == null ? null : Title.fromMap(json["defaultText"]),
defaultIcon: json["defaultIcon"] == null ? null : Icon.fromMap(json["defaultIcon"]),
defaultServiceEndpoint: json["defaultServiceEndpoint"] == null ? null : DislikeNavigationEndpoint.fromMap(json["defaultServiceEndpoint"]),
toggledText: json["toggledText"] == null ? null : Title.fromMap(json["toggledText"]),
toggledIcon: json["toggledIcon"] == null ? null : Icon.fromMap(json["toggledIcon"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"defaultText": defaultText?.toMap(),
"defaultIcon": defaultIcon?.toMap(),
"defaultServiceEndpoint": defaultServiceEndpoint?.toMap(),
"toggledText": toggledText?.toMap(),
"toggledIcon": toggledIcon?.toMap(),
"trackingParams": trackingParams,
};
}
class DislikeNavigationEndpoint {
String? clickTrackingParams;
ModalEndpoint? modalEndpoint;
DislikeNavigationEndpoint({
this.clickTrackingParams,
this.modalEndpoint,
});
factory DislikeNavigationEndpoint.fromJson(String str) => DislikeNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory DislikeNavigationEndpoint.fromMap(Map<String, dynamic> json) => DislikeNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
modalEndpoint: json["modalEndpoint"] == null ? null : ModalEndpoint.fromMap(json["modalEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"modalEndpoint": modalEndpoint?.toMap(),
};
}
class PlaylistPanelVideoRendererNavigationEndpoint {
String? clickTrackingParams;
FluffyWatchEndpoint? watchEndpoint;
PlaylistPanelVideoRendererNavigationEndpoint({
this.clickTrackingParams,
this.watchEndpoint,
});
factory PlaylistPanelVideoRendererNavigationEndpoint.fromJson(String str) => PlaylistPanelVideoRendererNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PlaylistPanelVideoRendererNavigationEndpoint.fromMap(Map<String, dynamic> json) => PlaylistPanelVideoRendererNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : FluffyWatchEndpoint.fromMap(json["watchEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
};
}
class FluffyWatchEndpoint {
String? videoId;
String? playlistId;
int? index;
String? params;
String? playerParams;
String? playlistSetVideoId;
LoggingContext? loggingContext;
FluffyWatchEndpointMusicSupportedConfigs? watchEndpointMusicSupportedConfigs;
FluffyWatchEndpoint({
this.videoId,
this.playlistId,
this.index,
this.params,
this.playerParams,
this.playlistSetVideoId,
this.loggingContext,
this.watchEndpointMusicSupportedConfigs,
});
factory FluffyWatchEndpoint.fromJson(String str) => FluffyWatchEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyWatchEndpoint.fromMap(Map<String, dynamic> json) => FluffyWatchEndpoint(
videoId: json["videoId"],
playlistId: json["playlistId"],
index: json["index"],
params: json["params"],
playerParams: json["playerParams"],
playlistSetVideoId: json["playlistSetVideoId"],
loggingContext: json["loggingContext"] == null ? null : LoggingContext.fromMap(json["loggingContext"]),
watchEndpointMusicSupportedConfigs: json["watchEndpointMusicSupportedConfigs"] == null ? null : FluffyWatchEndpointMusicSupportedConfigs.fromMap(json["watchEndpointMusicSupportedConfigs"]),
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"playlistId": playlistId,
"index": index,
"params": params,
"playerParams": playerParams,
"playlistSetVideoId": playlistSetVideoId,
"loggingContext": loggingContext?.toMap(),
"watchEndpointMusicSupportedConfigs": watchEndpointMusicSupportedConfigs?.toMap(),
};
}
class FluffyWatchEndpointMusicSupportedConfigs {
FluffyWatchEndpointMusicConfig? watchEndpointMusicConfig;
FluffyWatchEndpointMusicSupportedConfigs({
this.watchEndpointMusicConfig,
});
factory FluffyWatchEndpointMusicSupportedConfigs.fromJson(String str) => FluffyWatchEndpointMusicSupportedConfigs.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyWatchEndpointMusicSupportedConfigs.fromMap(Map<String, dynamic> json) => FluffyWatchEndpointMusicSupportedConfigs(
watchEndpointMusicConfig: json["watchEndpointMusicConfig"] == null ? null : FluffyWatchEndpointMusicConfig.fromMap(json["watchEndpointMusicConfig"]),
);
Map<String, dynamic> toMap() => {
"watchEndpointMusicConfig": watchEndpointMusicConfig?.toMap(),
};
}
class FluffyWatchEndpointMusicConfig {
bool? hasPersistentPlaylistPanel;
String? musicVideoType;
FluffyWatchEndpointMusicConfig({
this.hasPersistentPlaylistPanel,
this.musicVideoType,
});
factory FluffyWatchEndpointMusicConfig.fromJson(String str) => FluffyWatchEndpointMusicConfig.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyWatchEndpointMusicConfig.fromMap(Map<String, dynamic> json) => FluffyWatchEndpointMusicConfig(
hasPersistentPlaylistPanel: json["hasPersistentPlaylistPanel"],
musicVideoType: json["musicVideoType"],
);
Map<String, dynamic> toMap() => {
"hasPersistentPlaylistPanel": hasPersistentPlaylistPanel,
"musicVideoType": musicVideoType,
};
}
class ThumbnailDetailsClass {
List<ThumbnailElement>? thumbnails;
ThumbnailDetailsClass({
this.thumbnails,
});
factory ThumbnailDetailsClass.fromJson(String str) => ThumbnailDetailsClass.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ThumbnailDetailsClass.fromMap(Map<String, dynamic> json) => ThumbnailDetailsClass(
thumbnails: json["thumbnails"] == null ? [] : List<ThumbnailElement>.from(json["thumbnails"]!.map((x) => ThumbnailElement.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"thumbnails": thumbnails == null ? [] : List<dynamic>.from(thumbnails!.map((x) => x.toMap())),
};
}
class ThumbnailElement {
String? url;
int? width;
int? height;
ThumbnailElement({
this.url,
this.width,
this.height,
});
factory ThumbnailElement.fromJson(String str) => ThumbnailElement.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ThumbnailElement.fromMap(Map<String, dynamic> json) => ThumbnailElement(
url: json["url"],
width: json["width"],
height: json["height"],
);
Map<String, dynamic> toMap() => {
"url": url,
"width": width,
"height": height,
};
}
class Continuation {
NextRadioContinuationData? nextRadioContinuationData;
Continuation({
this.nextRadioContinuationData,
});
factory Continuation.fromJson(String str) => Continuation.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Continuation.fromMap(Map<String, dynamic> json) => Continuation(
nextRadioContinuationData: json["nextRadioContinuationData"] == null ? null : NextRadioContinuationData.fromMap(json["nextRadioContinuationData"]),
);
Map<String, dynamic> toMap() => {
"nextRadioContinuationData": nextRadioContinuationData?.toMap(),
};
}
class NextRadioContinuationData {
String? continuation;
String? clickTrackingParams;
NextRadioContinuationData({
this.continuation,
this.clickTrackingParams,
});
factory NextRadioContinuationData.fromJson(String str) => NextRadioContinuationData.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory NextRadioContinuationData.fromMap(Map<String, dynamic> json) => NextRadioContinuationData(
continuation: json["continuation"],
clickTrackingParams: json["clickTrackingParams"],
);
Map<String, dynamic> toMap() => {
"continuation": continuation,
"clickTrackingParams": clickTrackingParams,
};
}
class PreviewDescription {
PreviewDescription();
factory PreviewDescription.fromJson(String str) => PreviewDescription.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PreviewDescription.fromMap(Map<String, dynamic> json) => PreviewDescription(
);
Map<String, dynamic> toMap() => {
};
}
class Header {
MusicQueueHeaderRenderer? musicQueueHeaderRenderer;
Header({
this.musicQueueHeaderRenderer,
});
factory Header.fromJson(String str) => Header.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Header.fromMap(Map<String, dynamic> json) => Header(
musicQueueHeaderRenderer: json["musicQueueHeaderRenderer"] == null ? null : MusicQueueHeaderRenderer.fromMap(json["musicQueueHeaderRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicQueueHeaderRenderer": musicQueueHeaderRenderer?.toMap(),
};
}
class MusicQueueHeaderRenderer {
Title? title;
Title? subtitle;
List<ButtonElement>? buttons;
String? trackingParams;
MusicQueueHeaderRenderer({
this.title,
this.subtitle,
this.buttons,
this.trackingParams,
});
factory MusicQueueHeaderRenderer.fromJson(String str) => MusicQueueHeaderRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicQueueHeaderRenderer.fromMap(Map<String, dynamic> json) => MusicQueueHeaderRenderer(
title: json["title"] == null ? null : Title.fromMap(json["title"]),
subtitle: json["subtitle"] == null ? null : Title.fromMap(json["subtitle"]),
buttons: json["buttons"] == null ? [] : List<ButtonElement>.from(json["buttons"]!.map((x) => ButtonElement.fromMap(x))),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"title": title?.toMap(),
"subtitle": subtitle?.toMap(),
"buttons": buttons == null ? [] : List<dynamic>.from(buttons!.map((x) => x.toMap())),
"trackingParams": trackingParams,
};
}
class ButtonElement {
ButtonChipCloudChipRenderer? chipCloudChipRenderer;
ButtonElement({
this.chipCloudChipRenderer,
});
factory ButtonElement.fromJson(String str) => ButtonElement.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ButtonElement.fromMap(Map<String, dynamic> json) => ButtonElement(
chipCloudChipRenderer: json["chipCloudChipRenderer"] == null ? null : ButtonChipCloudChipRenderer.fromMap(json["chipCloudChipRenderer"]),
);
Map<String, dynamic> toMap() => {
"chipCloudChipRenderer": chipCloudChipRenderer?.toMap(),
};
}
class ButtonChipCloudChipRenderer {
Style? style;
Title? text;
PurpleNavigationEndpoint? navigationEndpoint;
String? trackingParams;
Icon? icon;
Accessibility? accessibilityData;
bool? isSelected;
String? uniqueId;
ButtonChipCloudChipRenderer({
this.style,
this.text,
this.navigationEndpoint,
this.trackingParams,
this.icon,
this.accessibilityData,
this.isSelected,
this.uniqueId,
});
factory ButtonChipCloudChipRenderer.fromJson(String str) => ButtonChipCloudChipRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ButtonChipCloudChipRenderer.fromMap(Map<String, dynamic> json) => ButtonChipCloudChipRenderer(
style: json["style"] == null ? null : Style.fromMap(json["style"]),
text: json["text"] == null ? null : Title.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : PurpleNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
icon: json["icon"] == null ? null : Icon.fromMap(json["icon"]),
accessibilityData: json["accessibilityData"] == null ? null : Accessibility.fromMap(json["accessibilityData"]),
isSelected: json["isSelected"],
uniqueId: json["uniqueId"],
);
Map<String, dynamic> toMap() => {
"style": style?.toMap(),
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"icon": icon?.toMap(),
"accessibilityData": accessibilityData?.toMap(),
"isSelected": isSelected,
"uniqueId": uniqueId,
};
}
class PurpleNavigationEndpoint {
String? clickTrackingParams;
ModalEndpoint? modalEndpoint;
PreviewDescription? saveQueueToPlaylistCommand;
PurpleNavigationEndpoint({
this.clickTrackingParams,
this.modalEndpoint,
this.saveQueueToPlaylistCommand,
});
factory PurpleNavigationEndpoint.fromJson(String str) => PurpleNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleNavigationEndpoint.fromMap(Map<String, dynamic> json) => PurpleNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
modalEndpoint: json["modalEndpoint"] == null ? null : ModalEndpoint.fromMap(json["modalEndpoint"]),
saveQueueToPlaylistCommand: json["saveQueueToPlaylistCommand"] == null ? null : PreviewDescription.fromMap(json["saveQueueToPlaylistCommand"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"modalEndpoint": modalEndpoint?.toMap(),
"saveQueueToPlaylistCommand": saveQueueToPlaylistCommand?.toMap(),
};
}
class Style {
String? styleType;
Style({
this.styleType,
});
factory Style.fromJson(String str) => Style.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Style.fromMap(Map<String, dynamic> json) => Style(
styleType: json["styleType"],
);
Map<String, dynamic> toMap() => {
"styleType": styleType,
};
}
class SubHeaderChipCloud {
ChipCloudRenderer? chipCloudRenderer;
SubHeaderChipCloud({
this.chipCloudRenderer,
});
factory SubHeaderChipCloud.fromJson(String str) => SubHeaderChipCloud.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SubHeaderChipCloud.fromMap(Map<String, dynamic> json) => SubHeaderChipCloud(
chipCloudRenderer: json["chipCloudRenderer"] == null ? null : ChipCloudRenderer.fromMap(json["chipCloudRenderer"]),
);
Map<String, dynamic> toMap() => {
"chipCloudRenderer": chipCloudRenderer?.toMap(),
};
}
class ChipCloudRenderer {
List<Chip>? chips;
String? trackingParams;
ChipCloudRenderer({
this.chips,
this.trackingParams,
});
factory ChipCloudRenderer.fromJson(String str) => ChipCloudRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ChipCloudRenderer.fromMap(Map<String, dynamic> json) => ChipCloudRenderer(
chips: json["chips"] == null ? [] : List<Chip>.from(json["chips"]!.map((x) => Chip.fromMap(x))),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"chips": chips == null ? [] : List<dynamic>.from(chips!.map((x) => x.toMap())),
"trackingParams": trackingParams,
};
}
class Chip {
ChipChipCloudChipRenderer? chipCloudChipRenderer;
Chip({
this.chipCloudChipRenderer,
});
factory Chip.fromJson(String str) => Chip.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Chip.fromMap(Map<String, dynamic> json) => Chip(
chipCloudChipRenderer: json["chipCloudChipRenderer"] == null ? null : ChipChipCloudChipRenderer.fromMap(json["chipCloudChipRenderer"]),
);
Map<String, dynamic> toMap() => {
"chipCloudChipRenderer": chipCloudChipRenderer?.toMap(),
};
}
class ChipChipCloudChipRenderer {
Title? text;
FluffyNavigationEndpoint? navigationEndpoint;
String? trackingParams;
Accessibility? accessibilityData;
bool? isSelected;
String? uniqueId;
ChipChipCloudChipRenderer({
this.text,
this.navigationEndpoint,
this.trackingParams,
this.accessibilityData,
this.isSelected,
this.uniqueId,
});
factory ChipChipCloudChipRenderer.fromJson(String str) => ChipChipCloudChipRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ChipChipCloudChipRenderer.fromMap(Map<String, dynamic> json) => ChipChipCloudChipRenderer(
text: json["text"] == null ? null : Title.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : FluffyNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
accessibilityData: json["accessibilityData"] == null ? null : Accessibility.fromMap(json["accessibilityData"]),
isSelected: json["isSelected"],
uniqueId: json["uniqueId"],
);
Map<String, dynamic> toMap() => {
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"accessibilityData": accessibilityData?.toMap(),
"isSelected": isSelected,
"uniqueId": uniqueId,
};
}
class FluffyNavigationEndpoint {
String? clickTrackingParams;
QueueUpdateCommand? queueUpdateCommand;
FluffyNavigationEndpoint({
this.clickTrackingParams,
this.queueUpdateCommand,
});
factory FluffyNavigationEndpoint.fromJson(String str) => FluffyNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyNavigationEndpoint.fromMap(Map<String, dynamic> json) => FluffyNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
queueUpdateCommand: json["queueUpdateCommand"] == null ? null : QueueUpdateCommand.fromMap(json["queueUpdateCommand"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"queueUpdateCommand": queueUpdateCommand?.toMap(),
};
}
class QueueUpdateCommand {
String? queueUpdateSection;
FetchContentsCommand? fetchContentsCommand;
bool? dedupeAgainstLocalQueue;
QueueUpdateCommand({
this.queueUpdateSection,
this.fetchContentsCommand,
this.dedupeAgainstLocalQueue,
});
factory QueueUpdateCommand.fromJson(String str) => QueueUpdateCommand.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory QueueUpdateCommand.fromMap(Map<String, dynamic> json) => QueueUpdateCommand(
queueUpdateSection: json["queueUpdateSection"],
fetchContentsCommand: json["fetchContentsCommand"] == null ? null : FetchContentsCommand.fromMap(json["fetchContentsCommand"]),
dedupeAgainstLocalQueue: json["dedupeAgainstLocalQueue"],
);
Map<String, dynamic> toMap() => {
"queueUpdateSection": queueUpdateSection,
"fetchContentsCommand": fetchContentsCommand?.toMap(),
"dedupeAgainstLocalQueue": dedupeAgainstLocalQueue,
};
}
class FetchContentsCommand {
String? clickTrackingParams;
FetchContentsCommandWatchEndpoint? watchEndpoint;
FetchContentsCommand({
this.clickTrackingParams,
this.watchEndpoint,
});
factory FetchContentsCommand.fromJson(String str) => FetchContentsCommand.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FetchContentsCommand.fromMap(Map<String, dynamic> json) => FetchContentsCommand(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : FetchContentsCommandWatchEndpoint.fromMap(json["watchEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
};
}
class FetchContentsCommandWatchEndpoint {
String? playlistId;
String? params;
LoggingContext? loggingContext;
FetchContentsCommandWatchEndpoint({
this.playlistId,
this.params,
this.loggingContext,
});
factory FetchContentsCommandWatchEndpoint.fromJson(String str) => FetchContentsCommandWatchEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FetchContentsCommandWatchEndpoint.fromMap(Map<String, dynamic> json) => FetchContentsCommandWatchEndpoint(
playlistId: json["playlistId"],
params: json["params"],
loggingContext: json["loggingContext"] == null ? null : LoggingContext.fromMap(json["loggingContext"]),
);
Map<String, dynamic> toMap() => {
"playlistId": playlistId,
"params": params,
"loggingContext": loggingContext?.toMap(),
};
}
class CurrentVideoEndpoint {
String? clickTrackingParams;
CurrentVideoEndpointWatchEndpoint? watchEndpoint;
CurrentVideoEndpoint({
this.clickTrackingParams,
this.watchEndpoint,
});
factory CurrentVideoEndpoint.fromJson(String str) => CurrentVideoEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory CurrentVideoEndpoint.fromMap(Map<String, dynamic> json) => CurrentVideoEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : CurrentVideoEndpointWatchEndpoint.fromMap(json["watchEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
};
}
class CurrentVideoEndpointWatchEndpoint {
String? videoId;
String? playlistId;
int? index;
String? playlistSetVideoId;
LoggingContext? loggingContext;
CurrentVideoEndpointWatchEndpoint({
this.videoId,
this.playlistId,
this.index,
this.playlistSetVideoId,
this.loggingContext,
});
factory CurrentVideoEndpointWatchEndpoint.fromJson(String str) => CurrentVideoEndpointWatchEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory CurrentVideoEndpointWatchEndpoint.fromMap(Map<String, dynamic> json) => CurrentVideoEndpointWatchEndpoint(
videoId: json["videoId"],
playlistId: json["playlistId"],
index: json["index"],
playlistSetVideoId: json["playlistSetVideoId"],
loggingContext: json["loggingContext"] == null ? null : LoggingContext.fromMap(json["loggingContext"]),
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"playlistId": playlistId,
"index": index,
"playlistSetVideoId": playlistSetVideoId,
"loggingContext": loggingContext?.toMap(),
};
}
class PlayerOverlays {
PlayerOverlayRenderer? playerOverlayRenderer;
PlayerOverlays({
this.playerOverlayRenderer,
});
factory PlayerOverlays.fromJson(String str) => PlayerOverlays.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PlayerOverlays.fromMap(Map<String, dynamic> json) => PlayerOverlays(
playerOverlayRenderer: json["playerOverlayRenderer"] == null ? null : PlayerOverlayRenderer.fromMap(json["playerOverlayRenderer"]),
);
Map<String, dynamic> toMap() => {
"playerOverlayRenderer": playerOverlayRenderer?.toMap(),
};
}
class PlayerOverlayRenderer {
List<Action>? actions;
BrowserMediaSession? browserMediaSession;
PlayerOverlayRenderer({
this.actions,
this.browserMediaSession,
});
factory PlayerOverlayRenderer.fromJson(String str) => PlayerOverlayRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PlayerOverlayRenderer.fromMap(Map<String, dynamic> json) => PlayerOverlayRenderer(
actions: json["actions"] == null ? [] : List<Action>.from(json["actions"]!.map((x) => Action.fromMap(x))),
browserMediaSession: json["browserMediaSession"] == null ? null : BrowserMediaSession.fromMap(json["browserMediaSession"]),
);
Map<String, dynamic> toMap() => {
"actions": actions == null ? [] : List<dynamic>.from(actions!.map((x) => x.toMap())),
"browserMediaSession": browserMediaSession?.toMap(),
};
}
class Action {
LikeButtonRenderer? likeButtonRenderer;
Action({
this.likeButtonRenderer,
});
factory Action.fromJson(String str) => Action.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Action.fromMap(Map<String, dynamic> json) => Action(
likeButtonRenderer: json["likeButtonRenderer"] == null ? null : LikeButtonRenderer.fromMap(json["likeButtonRenderer"]),
);
Map<String, dynamic> toMap() => {
"likeButtonRenderer": likeButtonRenderer?.toMap(),
};
}
class LikeButtonRenderer {
Target? target;
String? likeStatus;
String? trackingParams;
bool? likesAllowed;
DislikeNavigationEndpoint? dislikeNavigationEndpoint;
DislikeNavigationEndpoint? likeCommand;
LikeButtonRenderer({
this.target,
this.likeStatus,
this.trackingParams,
this.likesAllowed,
this.dislikeNavigationEndpoint,
this.likeCommand,
});
factory LikeButtonRenderer.fromJson(String str) => LikeButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LikeButtonRenderer.fromMap(Map<String, dynamic> json) => LikeButtonRenderer(
target: json["target"] == null ? null : Target.fromMap(json["target"]),
likeStatus: json["likeStatus"],
trackingParams: json["trackingParams"],
likesAllowed: json["likesAllowed"],
dislikeNavigationEndpoint: json["dislikeNavigationEndpoint"] == null ? null : DislikeNavigationEndpoint.fromMap(json["dislikeNavigationEndpoint"]),
likeCommand: json["likeCommand"] == null ? null : DislikeNavigationEndpoint.fromMap(json["likeCommand"]),
);
Map<String, dynamic> toMap() => {
"target": target?.toMap(),
"likeStatus": likeStatus,
"trackingParams": trackingParams,
"likesAllowed": likesAllowed,
"dislikeNavigationEndpoint": dislikeNavigationEndpoint?.toMap(),
"likeCommand": likeCommand?.toMap(),
};
}
class BrowserMediaSession {
BrowserMediaSessionRenderer? browserMediaSessionRenderer;
BrowserMediaSession({
this.browserMediaSessionRenderer,
});
factory BrowserMediaSession.fromJson(String str) => BrowserMediaSession.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowserMediaSession.fromMap(Map<String, dynamic> json) => BrowserMediaSession(
browserMediaSessionRenderer: json["browserMediaSessionRenderer"] == null ? null : BrowserMediaSessionRenderer.fromMap(json["browserMediaSessionRenderer"]),
);
Map<String, dynamic> toMap() => {
"browserMediaSessionRenderer": browserMediaSessionRenderer?.toMap(),
};
}
class BrowserMediaSessionRenderer {
Title? album;
ThumbnailDetailsClass? thumbnailDetails;
BrowserMediaSessionRenderer({
this.album,
this.thumbnailDetails,
});
factory BrowserMediaSessionRenderer.fromJson(String str) => BrowserMediaSessionRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowserMediaSessionRenderer.fromMap(Map<String, dynamic> json) => BrowserMediaSessionRenderer(
album: json["album"] == null ? null : Title.fromMap(json["album"]),
thumbnailDetails: json["thumbnailDetails"] == null ? null : ThumbnailDetailsClass.fromMap(json["thumbnailDetails"]),
);
Map<String, dynamic> toMap() => {
"album": album?.toMap(),
"thumbnailDetails": thumbnailDetails?.toMap(),
};
}
class ResponseContext {
String? visitorData;
List<ServiceTrackingParam>? serviceTrackingParams;
ResponseContext({
this.visitorData,
this.serviceTrackingParams,
});
factory ResponseContext.fromJson(String str) => ResponseContext.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ResponseContext.fromMap(Map<String, dynamic> json) => ResponseContext(
visitorData: json["visitorData"],
serviceTrackingParams: json["serviceTrackingParams"] == null ? [] : List<ServiceTrackingParam>.from(json["serviceTrackingParams"]!.map((x) => ServiceTrackingParam.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"visitorData": visitorData,
"serviceTrackingParams": serviceTrackingParams == null ? [] : List<dynamic>.from(serviceTrackingParams!.map((x) => x.toMap())),
};
}
class ServiceTrackingParam {
String? service;
List<Param>? params;
ServiceTrackingParam({
this.service,
this.params,
});
factory ServiceTrackingParam.fromJson(String str) => ServiceTrackingParam.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ServiceTrackingParam.fromMap(Map<String, dynamic> json) => ServiceTrackingParam(
service: json["service"],
params: json["params"] == null ? [] : List<Param>.from(json["params"]!.map((x) => Param.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"service": service,
"params": params == null ? [] : List<dynamic>.from(params!.map((x) => x.toMap())),
};
}
class Param {
String? key;
String? value;
Param({
this.key,
this.value,
});
factory Param.fromJson(String str) => Param.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Param.fromMap(Map<String, dynamic> json) => Param(
key: json["key"],
value: json["value"],
);
Map<String, dynamic> toMap() => {
"key": key,
"value": value,
};
}
class VideoReporting {
ReportFormModalRenderer? reportFormModalRenderer;
VideoReporting({
this.reportFormModalRenderer,
});
factory VideoReporting.fromJson(String str) => VideoReporting.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory VideoReporting.fromMap(Map<String, dynamic> json) => VideoReporting(
reportFormModalRenderer: json["reportFormModalRenderer"] == null ? null : ReportFormModalRenderer.fromMap(json["reportFormModalRenderer"]),
);
Map<String, dynamic> toMap() => {
"reportFormModalRenderer": reportFormModalRenderer?.toMap(),
};
}
class ReportFormModalRenderer {
OptionsSupportedRenderers? optionsSupportedRenderers;
String? trackingParams;
Title? title;
CancelButtonClass? submitButton;
CancelButtonClass? cancelButton;
Footer? footer;
ReportFormModalRenderer({
this.optionsSupportedRenderers,
this.trackingParams,
this.title,
this.submitButton,
this.cancelButton,
this.footer,
});
factory ReportFormModalRenderer.fromJson(String str) => ReportFormModalRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ReportFormModalRenderer.fromMap(Map<String, dynamic> json) => ReportFormModalRenderer(
optionsSupportedRenderers: json["optionsSupportedRenderers"] == null ? null : OptionsSupportedRenderers.fromMap(json["optionsSupportedRenderers"]),
trackingParams: json["trackingParams"],
title: json["title"] == null ? null : Title.fromMap(json["title"]),
submitButton: json["submitButton"] == null ? null : CancelButtonClass.fromMap(json["submitButton"]),
cancelButton: json["cancelButton"] == null ? null : CancelButtonClass.fromMap(json["cancelButton"]),
footer: json["footer"] == null ? null : Footer.fromMap(json["footer"]),
);
Map<String, dynamic> toMap() => {
"optionsSupportedRenderers": optionsSupportedRenderers?.toMap(),
"trackingParams": trackingParams,
"title": title?.toMap(),
"submitButton": submitButton?.toMap(),
"cancelButton": cancelButton?.toMap(),
"footer": footer?.toMap(),
};
}
class Footer {
List<FooterRun>? runs;
Footer({
this.runs,
});
factory Footer.fromJson(String str) => Footer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Footer.fromMap(Map<String, dynamic> json) => Footer(
runs: json["runs"] == null ? [] : List<FooterRun>.from(json["runs"]!.map((x) => FooterRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class FooterRun {
String? text;
RunNavigationEndpoint? navigationEndpoint;
FooterRun({
this.text,
this.navigationEndpoint,
});
factory FooterRun.fromJson(String str) => FooterRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FooterRun.fromMap(Map<String, dynamic> json) => FooterRun(
text: json["text"],
navigationEndpoint: json["navigationEndpoint"] == null ? null : RunNavigationEndpoint.fromMap(json["navigationEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text,
"navigationEndpoint": navigationEndpoint?.toMap(),
};
}
class RunNavigationEndpoint {
String? clickTrackingParams;
UrlEndpoint? urlEndpoint;
RunNavigationEndpoint({
this.clickTrackingParams,
this.urlEndpoint,
});
factory RunNavigationEndpoint.fromJson(String str) => RunNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory RunNavigationEndpoint.fromMap(Map<String, dynamic> json) => RunNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
urlEndpoint: json["urlEndpoint"] == null ? null : UrlEndpoint.fromMap(json["urlEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"urlEndpoint": urlEndpoint?.toMap(),
};
}
class UrlEndpoint {
String? url;
UrlEndpoint({
this.url,
});
factory UrlEndpoint.fromJson(String str) => UrlEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory UrlEndpoint.fromMap(Map<String, dynamic> json) => UrlEndpoint(
url: json["url"],
);
Map<String, dynamic> toMap() => {
"url": url,
};
}
class OptionsSupportedRenderers {
OptionsRenderer? optionsRenderer;
OptionsSupportedRenderers({
this.optionsRenderer,
});
factory OptionsSupportedRenderers.fromJson(String str) => OptionsSupportedRenderers.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OptionsSupportedRenderers.fromMap(Map<String, dynamic> json) => OptionsSupportedRenderers(
optionsRenderer: json["optionsRenderer"] == null ? null : OptionsRenderer.fromMap(json["optionsRenderer"]),
);
Map<String, dynamic> toMap() => {
"optionsRenderer": optionsRenderer?.toMap(),
};
}
class OptionsRenderer {
List<OptionsRendererItem>? items;
String? trackingParams;
OptionsRenderer({
this.items,
this.trackingParams,
});
factory OptionsRenderer.fromJson(String str) => OptionsRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OptionsRenderer.fromMap(Map<String, dynamic> json) => OptionsRenderer(
items: json["items"] == null ? [] : List<OptionsRendererItem>.from(json["items"]!.map((x) => OptionsRendererItem.fromMap(x))),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"items": items == null ? [] : List<dynamic>.from(items!.map((x) => x.toMap())),
"trackingParams": trackingParams,
};
}
class OptionsRendererItem {
OptionSelectableItemRenderer? optionSelectableItemRenderer;
OptionsRendererItem({
this.optionSelectableItemRenderer,
});
factory OptionsRendererItem.fromJson(String str) => OptionsRendererItem.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OptionsRendererItem.fromMap(Map<String, dynamic> json) => OptionsRendererItem(
optionSelectableItemRenderer: json["optionSelectableItemRenderer"] == null ? null : OptionSelectableItemRenderer.fromMap(json["optionSelectableItemRenderer"]),
);
Map<String, dynamic> toMap() => {
"optionSelectableItemRenderer": optionSelectableItemRenderer?.toMap(),
};
}
class OptionSelectableItemRenderer {
Title? text;
String? trackingParams;
SubmitEndpoint? submitEndpoint;
OptionSelectableItemRenderer({
this.text,
this.trackingParams,
this.submitEndpoint,
});
factory OptionSelectableItemRenderer.fromJson(String str) => OptionSelectableItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OptionSelectableItemRenderer.fromMap(Map<String, dynamic> json) => OptionSelectableItemRenderer(
text: json["text"] == null ? null : Title.fromMap(json["text"]),
trackingParams: json["trackingParams"],
submitEndpoint: json["submitEndpoint"] == null ? null : SubmitEndpoint.fromMap(json["submitEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text?.toMap(),
"trackingParams": trackingParams,
"submitEndpoint": submitEndpoint?.toMap(),
};
}
class SubmitEndpoint {
String? clickTrackingParams;
FlagEndpoint? flagEndpoint;
SubmitEndpoint({
this.clickTrackingParams,
this.flagEndpoint,
});
factory SubmitEndpoint.fromJson(String str) => SubmitEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SubmitEndpoint.fromMap(Map<String, dynamic> json) => SubmitEndpoint(
clickTrackingParams: json["clickTrackingParams"],
flagEndpoint: json["flagEndpoint"] == null ? null : FlagEndpoint.fromMap(json["flagEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"flagEndpoint": flagEndpoint?.toMap(),
};
}
class FlagEndpoint {
String? flagAction;
FlagEndpoint({
this.flagAction,
});
factory FlagEndpoint.fromJson(String str) => FlagEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FlagEndpoint.fromMap(Map<String, dynamic> json) => FlagEndpoint(
flagAction: json["flagAction"],
);
Map<String, dynamic> toMap() => {
"flagAction": flagAction,
};
}