import 'package:json_annotation/json_annotation.dart'; part 'file.g.dart'; @JsonSerializable() class EhFileBasic { const EhFileBasic({ required this.id, required this.width, required this.height, required this.isOriginal, }); final int id; final int width; final int height; @JsonKey(name: 'is_original') final bool isOriginal; factory EhFileBasic.fromJson(Map json) => _$EhFileBasicFromJson(json); Map toJson() => _$EhFileBasicToJson(this); } @JsonSerializable() class EhFileExtend { const EhFileExtend({ required this.id, required this.width, required this.height, required this.isOriginal, required this.token, }); final int id; final int width; final int height; @JsonKey(name: 'is_original') final bool isOriginal; final String token; factory EhFileExtend.fromJson(Map json) => _$EhFileExtendFromJson(json); Map toJson() => _$EhFileExtendToJson(this); } class EhFiles { EhFiles({required this.files}); Map> files; factory EhFiles.fromJson(Map json) => EhFiles( files: (json).map( (k, e) => MapEntry( k, (e as List) .map((e) => EhFileBasic.fromJson(e as Map)) .toList()), ), ); void merge(EhFiles another) { files.addAll(another.files); } }