enum ImageType { Jpg, Mp4, } class VidProcessResult { ImageType imageType; String? fileUrl; VidProcessResult({ this.imageType = ImageType.Jpg, this.fileUrl, }); factory VidProcessResult.fromJson(Map map) { return VidProcessResult( imageType: ImageType.values.firstWhere((e) => e.index == map['ImageType']), fileUrl: map['FileUrl'], ); } Map toJson() { final map = Map(); map['ImageType'] = imageType.index; if(fileUrl != null) map['FileUrl'] = fileUrl; return map; } } class VidFileTokenRequest { String? fileToken; VidFileTokenRequest({ this.fileToken, }); factory VidFileTokenRequest.fromJson(Map map) { return VidFileTokenRequest( fileToken: map['FileToken'], ); } Map toJson() { final map = Map(); if(fileToken != null) map['FileToken'] = fileToken; return map; } } enum ImageQualityEnum { None, Low, Medium, High, } class ConvertToImageDataRequest extends VidFileTokenRequest{ int height; ImageQualityEnum quality; ConvertToImageDataRequest({ this.height = 0, this.quality = ImageQualityEnum.None, String? fileToken, }) : super( fileToken: fileToken, ); factory ConvertToImageDataRequest.fromJson(Map map) { return ConvertToImageDataRequest( height: map['Height'], quality: ImageQualityEnum.values.firstWhere((e) => e.index == map['Quality']), fileToken: map['FileToken'], ); } Map toJson() { final map = super.toJson(); map['Height'] = height; map['Quality'] = quality.index; return map; } } class GetThumbnailRequest extends VidFileTokenRequest{ int height; int quality; GetThumbnailRequest({ this.height = 0, this.quality = 0, String? fileToken, }) : super( fileToken: fileToken, ); factory GetThumbnailRequest.fromJson(Map map) { return GetThumbnailRequest( height: map['Height'], quality: map['Quality'], fileToken: map['FileToken'], ); } Map toJson() { final map = super.toJson(); map['Height'] = height; map['Quality'] = quality; return map; } }