ToneSnap_FSX_Flutter/lib/data/models/search_result_tabbar_model.dart
2024-08-01 13:38:25 +08:00

53 lines
1.4 KiB
Dart

// Author: fengshengxiong
// Date: 2024/7/28
// Description: 搜索结果TabBar模型
import 'dart:convert';
import 'package:tone_snap/data/models/music_model.dart';
class SearchResultTabBarModel {
String? title;
String? params;
String? uniqueId;
List<MusicModel>? musicList;
SearchResultTabBarModel({
this.title,
this.params,
this.uniqueId,
this.musicList,
});
SearchResultTabBarModel copyWith({
String? title,
String? params,
String? uniqueId,
List<MusicModel>? musicList,
}) =>
SearchResultTabBarModel(
title: title ?? this.title,
params: params ?? this.params,
uniqueId: uniqueId ?? this.uniqueId,
musicList: musicList ?? this.musicList,
);
factory SearchResultTabBarModel.fromJson(String str) => SearchResultTabBarModel.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SearchResultTabBarModel.fromMap(Map<String, dynamic> json) => SearchResultTabBarModel(
title: json["title"],
params: json["params"],
uniqueId: json["uniqueId"],
musicList: json["musicList"] == null ? <MusicModel>[] : List<MusicModel>.from(json["musicList"]!.map((x) => MusicModel.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"title": title,
"params": params,
"uniqueId": uniqueId,
"musicList": musicList == null ? [] : List<dynamic>.from(musicList!.map((x) => x.toMap())),
};
}