ModelVersion.fromJson constructor

ModelVersion.fromJson(
  1. Map<String, dynamic> json
)

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?,
  );
}