ModelVersion.fromJson constructor
Creates a model version instance from a JSON map.
Implementation
factory ModelVersion.fromJson(Map<String, dynamic> json) {
return ModelVersion(
id: json['id'] as int? ?? 0, // Default for tests
modelId: json['modelId'] as int?,
name: json['name'] as String? ?? 'Unknown version', // Default for tests
baseModel: json['baseModel'] != null
? BaseModel.fromString(json['baseModel'] as String)
: BaseModel.other, // Default for tests
description: json['description'] as String?,
trainedWords: (json['trainedWords'] as List<dynamic>?)
?.map((e) => e as String)
.toList() ??
[],
supportsGeneration: json['supportsGeneration'] as bool? ?? false,
files: (json['files'] as List<dynamic>?)
?.map((e) => ModelFile.fromJson(e as Map<String, dynamic>))
.toList() ??
[],
images: (json['images'] as List<dynamic>?)
?.map((e) => ImageModel.fromJson(e as Map<String, dynamic>))
.toList() ??
[],
downloadUrl: json['downloadUrl'] as String?,
createdAt: json['createdAt'] != null
? DateTime.parse(json['createdAt'] as String)
: null,
publishedAt: json['publishedAt'] != null
? DateTime.parse(json['publishedAt'] as String)
: null,
earlyAccessTimeFrame: json['earlyAccessTimeFrame'] != null
? DateTime.parse(json['earlyAccessTimeFrame'] as String)
: null,
status: json['status'] as String?,
availability: json['availability'] as String?,
clipSkip: json['clipSkip'] as int?,
hashes: json['hashes'] != null
? (json['hashes'] as Map<String, dynamic>).map(
(k, v) => MapEntry(k, v as String?),
)
: null,
requireAuth: json['requireAuth'] as bool?,
checkPermission: json['checkPermission'] as bool?,
isFeatured: json['isFeatured'] as bool?,
minor: json['minor'] as bool?,
);
}