mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
d416e225e6
Smart search currently returns a list of assets by their score. It would be nice if we could instead filter assets, and then list them by date. This is the default behaviour of other platforms.
692 lines
25 KiB
Dart
Generated
692 lines
25 KiB
Dart
Generated
//
|
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
|
//
|
|
// @dart=2.18
|
|
|
|
// ignore_for_file: unused_element, unused_import
|
|
// ignore_for_file: always_put_required_named_parameters_first
|
|
// ignore_for_file: constant_identifier_names
|
|
// ignore_for_file: lines_longer_than_80_chars
|
|
|
|
part of openapi.api;
|
|
|
|
class SmartSearchDto {
|
|
/// Returns a new [SmartSearchDto] instance.
|
|
SmartSearchDto({
|
|
this.albumIds = const [],
|
|
this.city,
|
|
this.country,
|
|
this.createdAfter,
|
|
this.createdBefore,
|
|
this.deviceId,
|
|
this.isEncoded,
|
|
this.isFavorite,
|
|
this.isMotion,
|
|
this.isNotInAlbum,
|
|
this.isOffline,
|
|
this.language,
|
|
this.lensModel,
|
|
this.libraryId,
|
|
this.make,
|
|
this.model,
|
|
this.ocr,
|
|
this.order,
|
|
this.page,
|
|
this.personIds = const [],
|
|
this.query,
|
|
this.queryAssetId,
|
|
this.rating,
|
|
this.size,
|
|
this.state,
|
|
this.tagIds = const [],
|
|
this.takenAfter,
|
|
this.takenBefore,
|
|
this.trashedAfter,
|
|
this.trashedBefore,
|
|
this.type,
|
|
this.updatedAfter,
|
|
this.updatedBefore,
|
|
this.visibility,
|
|
this.withDeleted,
|
|
this.withExif,
|
|
});
|
|
|
|
/// Filter by album IDs
|
|
List<String> albumIds;
|
|
|
|
/// Filter by city name
|
|
String? city;
|
|
|
|
/// Filter by country name
|
|
String? country;
|
|
|
|
/// Filter by creation date (after)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? createdAfter;
|
|
|
|
/// Filter by creation date (before)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? createdBefore;
|
|
|
|
/// Device ID to filter by
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
String? deviceId;
|
|
|
|
/// Filter by encoded status
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? isEncoded;
|
|
|
|
/// Filter by favorite status
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? isFavorite;
|
|
|
|
/// Filter by motion photo status
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? isMotion;
|
|
|
|
/// Filter assets not in any album
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? isNotInAlbum;
|
|
|
|
/// Filter by offline status
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? isOffline;
|
|
|
|
/// Search language code
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
String? language;
|
|
|
|
/// Filter by lens model
|
|
String? lensModel;
|
|
|
|
/// Library ID to filter by
|
|
String? libraryId;
|
|
|
|
/// Filter by camera make
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
String? make;
|
|
|
|
/// Filter by camera model
|
|
String? model;
|
|
|
|
/// Filter by OCR text content
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
String? ocr;
|
|
|
|
/// Sort order by date. If not provided, results are sorted by relevance.
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
AssetOrder? order;
|
|
|
|
/// Page number
|
|
///
|
|
/// Minimum value: 1
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
num? page;
|
|
|
|
/// Filter by person IDs
|
|
List<String> personIds;
|
|
|
|
/// Natural language search query
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
String? query;
|
|
|
|
/// Asset ID to use as search reference
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
String? queryAssetId;
|
|
|
|
/// Filter by rating
|
|
///
|
|
/// Minimum value: -1
|
|
/// Maximum value: 5
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
num? rating;
|
|
|
|
/// Number of results to return
|
|
///
|
|
/// Minimum value: 1
|
|
/// Maximum value: 1000
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
num? size;
|
|
|
|
/// Filter by state/province name
|
|
String? state;
|
|
|
|
/// Filter by tag IDs
|
|
List<String>? tagIds;
|
|
|
|
/// Filter by taken date (after)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? takenAfter;
|
|
|
|
/// Filter by taken date (before)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? takenBefore;
|
|
|
|
/// Filter by trash date (after)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? trashedAfter;
|
|
|
|
/// Filter by trash date (before)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? trashedBefore;
|
|
|
|
/// Asset type filter
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
AssetTypeEnum? type;
|
|
|
|
/// Filter by update date (after)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? updatedAfter;
|
|
|
|
/// Filter by update date (before)
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
DateTime? updatedBefore;
|
|
|
|
/// Filter by visibility
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
AssetVisibility? visibility;
|
|
|
|
/// Include deleted assets
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? withDeleted;
|
|
|
|
/// Include EXIF data in response
|
|
///
|
|
/// Please note: This property should have been non-nullable! Since the specification file
|
|
/// does not include a default value (using the "default:" property), however, the generated
|
|
/// source code must fall back to having a nullable type.
|
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
///
|
|
bool? withExif;
|
|
|
|
@override
|
|
bool operator ==(Object other) => identical(this, other) || other is SmartSearchDto &&
|
|
_deepEquality.equals(other.albumIds, albumIds) &&
|
|
other.city == city &&
|
|
other.country == country &&
|
|
other.createdAfter == createdAfter &&
|
|
other.createdBefore == createdBefore &&
|
|
other.deviceId == deviceId &&
|
|
other.isEncoded == isEncoded &&
|
|
other.isFavorite == isFavorite &&
|
|
other.isMotion == isMotion &&
|
|
other.isNotInAlbum == isNotInAlbum &&
|
|
other.isOffline == isOffline &&
|
|
other.language == language &&
|
|
other.lensModel == lensModel &&
|
|
other.libraryId == libraryId &&
|
|
other.make == make &&
|
|
other.model == model &&
|
|
other.ocr == ocr &&
|
|
other.order == order &&
|
|
other.page == page &&
|
|
_deepEquality.equals(other.personIds, personIds) &&
|
|
other.query == query &&
|
|
other.queryAssetId == queryAssetId &&
|
|
other.rating == rating &&
|
|
other.size == size &&
|
|
other.state == state &&
|
|
_deepEquality.equals(other.tagIds, tagIds) &&
|
|
other.takenAfter == takenAfter &&
|
|
other.takenBefore == takenBefore &&
|
|
other.trashedAfter == trashedAfter &&
|
|
other.trashedBefore == trashedBefore &&
|
|
other.type == type &&
|
|
other.updatedAfter == updatedAfter &&
|
|
other.updatedBefore == updatedBefore &&
|
|
other.visibility == visibility &&
|
|
other.withDeleted == withDeleted &&
|
|
other.withExif == withExif;
|
|
|
|
@override
|
|
int get hashCode =>
|
|
// ignore: unnecessary_parenthesis
|
|
(albumIds.hashCode) +
|
|
(city == null ? 0 : city!.hashCode) +
|
|
(country == null ? 0 : country!.hashCode) +
|
|
(createdAfter == null ? 0 : createdAfter!.hashCode) +
|
|
(createdBefore == null ? 0 : createdBefore!.hashCode) +
|
|
(deviceId == null ? 0 : deviceId!.hashCode) +
|
|
(isEncoded == null ? 0 : isEncoded!.hashCode) +
|
|
(isFavorite == null ? 0 : isFavorite!.hashCode) +
|
|
(isMotion == null ? 0 : isMotion!.hashCode) +
|
|
(isNotInAlbum == null ? 0 : isNotInAlbum!.hashCode) +
|
|
(isOffline == null ? 0 : isOffline!.hashCode) +
|
|
(language == null ? 0 : language!.hashCode) +
|
|
(lensModel == null ? 0 : lensModel!.hashCode) +
|
|
(libraryId == null ? 0 : libraryId!.hashCode) +
|
|
(make == null ? 0 : make!.hashCode) +
|
|
(model == null ? 0 : model!.hashCode) +
|
|
(ocr == null ? 0 : ocr!.hashCode) +
|
|
(order == null ? 0 : order!.hashCode) +
|
|
(page == null ? 0 : page!.hashCode) +
|
|
(personIds.hashCode) +
|
|
(query == null ? 0 : query!.hashCode) +
|
|
(queryAssetId == null ? 0 : queryAssetId!.hashCode) +
|
|
(rating == null ? 0 : rating!.hashCode) +
|
|
(size == null ? 0 : size!.hashCode) +
|
|
(state == null ? 0 : state!.hashCode) +
|
|
(tagIds == null ? 0 : tagIds!.hashCode) +
|
|
(takenAfter == null ? 0 : takenAfter!.hashCode) +
|
|
(takenBefore == null ? 0 : takenBefore!.hashCode) +
|
|
(trashedAfter == null ? 0 : trashedAfter!.hashCode) +
|
|
(trashedBefore == null ? 0 : trashedBefore!.hashCode) +
|
|
(type == null ? 0 : type!.hashCode) +
|
|
(updatedAfter == null ? 0 : updatedAfter!.hashCode) +
|
|
(updatedBefore == null ? 0 : updatedBefore!.hashCode) +
|
|
(visibility == null ? 0 : visibility!.hashCode) +
|
|
(withDeleted == null ? 0 : withDeleted!.hashCode) +
|
|
(withExif == null ? 0 : withExif!.hashCode);
|
|
|
|
@override
|
|
String toString() => 'SmartSearchDto[albumIds=$albumIds, city=$city, country=$country, createdAfter=$createdAfter, createdBefore=$createdBefore, deviceId=$deviceId, isEncoded=$isEncoded, isFavorite=$isFavorite, isMotion=$isMotion, isNotInAlbum=$isNotInAlbum, isOffline=$isOffline, language=$language, lensModel=$lensModel, libraryId=$libraryId, make=$make, model=$model, ocr=$ocr, order=$order, page=$page, personIds=$personIds, query=$query, queryAssetId=$queryAssetId, rating=$rating, size=$size, state=$state, tagIds=$tagIds, takenAfter=$takenAfter, takenBefore=$takenBefore, trashedAfter=$trashedAfter, trashedBefore=$trashedBefore, type=$type, updatedAfter=$updatedAfter, updatedBefore=$updatedBefore, visibility=$visibility, withDeleted=$withDeleted, withExif=$withExif]';
|
|
|
|
Map<String, dynamic> toJson() {
|
|
final json = <String, dynamic>{};
|
|
json[r'albumIds'] = this.albumIds;
|
|
if (this.city != null) {
|
|
json[r'city'] = this.city;
|
|
} else {
|
|
// json[r'city'] = null;
|
|
}
|
|
if (this.country != null) {
|
|
json[r'country'] = this.country;
|
|
} else {
|
|
// json[r'country'] = null;
|
|
}
|
|
if (this.createdAfter != null) {
|
|
json[r'createdAfter'] = this.createdAfter!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'createdAfter'] = null;
|
|
}
|
|
if (this.createdBefore != null) {
|
|
json[r'createdBefore'] = this.createdBefore!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'createdBefore'] = null;
|
|
}
|
|
if (this.deviceId != null) {
|
|
json[r'deviceId'] = this.deviceId;
|
|
} else {
|
|
// json[r'deviceId'] = null;
|
|
}
|
|
if (this.isEncoded != null) {
|
|
json[r'isEncoded'] = this.isEncoded;
|
|
} else {
|
|
// json[r'isEncoded'] = null;
|
|
}
|
|
if (this.isFavorite != null) {
|
|
json[r'isFavorite'] = this.isFavorite;
|
|
} else {
|
|
// json[r'isFavorite'] = null;
|
|
}
|
|
if (this.isMotion != null) {
|
|
json[r'isMotion'] = this.isMotion;
|
|
} else {
|
|
// json[r'isMotion'] = null;
|
|
}
|
|
if (this.isNotInAlbum != null) {
|
|
json[r'isNotInAlbum'] = this.isNotInAlbum;
|
|
} else {
|
|
// json[r'isNotInAlbum'] = null;
|
|
}
|
|
if (this.isOffline != null) {
|
|
json[r'isOffline'] = this.isOffline;
|
|
} else {
|
|
// json[r'isOffline'] = null;
|
|
}
|
|
if (this.language != null) {
|
|
json[r'language'] = this.language;
|
|
} else {
|
|
// json[r'language'] = null;
|
|
}
|
|
if (this.lensModel != null) {
|
|
json[r'lensModel'] = this.lensModel;
|
|
} else {
|
|
// json[r'lensModel'] = null;
|
|
}
|
|
if (this.libraryId != null) {
|
|
json[r'libraryId'] = this.libraryId;
|
|
} else {
|
|
// json[r'libraryId'] = null;
|
|
}
|
|
if (this.make != null) {
|
|
json[r'make'] = this.make;
|
|
} else {
|
|
// json[r'make'] = null;
|
|
}
|
|
if (this.model != null) {
|
|
json[r'model'] = this.model;
|
|
} else {
|
|
// json[r'model'] = null;
|
|
}
|
|
if (this.ocr != null) {
|
|
json[r'ocr'] = this.ocr;
|
|
} else {
|
|
// json[r'ocr'] = null;
|
|
}
|
|
if (this.order != null) {
|
|
json[r'order'] = this.order;
|
|
} else {
|
|
// json[r'order'] = null;
|
|
}
|
|
if (this.page != null) {
|
|
json[r'page'] = this.page;
|
|
} else {
|
|
// json[r'page'] = null;
|
|
}
|
|
json[r'personIds'] = this.personIds;
|
|
if (this.query != null) {
|
|
json[r'query'] = this.query;
|
|
} else {
|
|
// json[r'query'] = null;
|
|
}
|
|
if (this.queryAssetId != null) {
|
|
json[r'queryAssetId'] = this.queryAssetId;
|
|
} else {
|
|
// json[r'queryAssetId'] = null;
|
|
}
|
|
if (this.rating != null) {
|
|
json[r'rating'] = this.rating;
|
|
} else {
|
|
// json[r'rating'] = null;
|
|
}
|
|
if (this.size != null) {
|
|
json[r'size'] = this.size;
|
|
} else {
|
|
// json[r'size'] = null;
|
|
}
|
|
if (this.state != null) {
|
|
json[r'state'] = this.state;
|
|
} else {
|
|
// json[r'state'] = null;
|
|
}
|
|
if (this.tagIds != null) {
|
|
json[r'tagIds'] = this.tagIds;
|
|
} else {
|
|
// json[r'tagIds'] = null;
|
|
}
|
|
if (this.takenAfter != null) {
|
|
json[r'takenAfter'] = this.takenAfter!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'takenAfter'] = null;
|
|
}
|
|
if (this.takenBefore != null) {
|
|
json[r'takenBefore'] = this.takenBefore!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'takenBefore'] = null;
|
|
}
|
|
if (this.trashedAfter != null) {
|
|
json[r'trashedAfter'] = this.trashedAfter!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'trashedAfter'] = null;
|
|
}
|
|
if (this.trashedBefore != null) {
|
|
json[r'trashedBefore'] = this.trashedBefore!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'trashedBefore'] = null;
|
|
}
|
|
if (this.type != null) {
|
|
json[r'type'] = this.type;
|
|
} else {
|
|
// json[r'type'] = null;
|
|
}
|
|
if (this.updatedAfter != null) {
|
|
json[r'updatedAfter'] = this.updatedAfter!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'updatedAfter'] = null;
|
|
}
|
|
if (this.updatedBefore != null) {
|
|
json[r'updatedBefore'] = this.updatedBefore!.toUtc().toIso8601String();
|
|
} else {
|
|
// json[r'updatedBefore'] = null;
|
|
}
|
|
if (this.visibility != null) {
|
|
json[r'visibility'] = this.visibility;
|
|
} else {
|
|
// json[r'visibility'] = null;
|
|
}
|
|
if (this.withDeleted != null) {
|
|
json[r'withDeleted'] = this.withDeleted;
|
|
} else {
|
|
// json[r'withDeleted'] = null;
|
|
}
|
|
if (this.withExif != null) {
|
|
json[r'withExif'] = this.withExif;
|
|
} else {
|
|
// json[r'withExif'] = null;
|
|
}
|
|
return json;
|
|
}
|
|
|
|
/// Returns a new [SmartSearchDto] instance and imports its values from
|
|
/// [value] if it's a [Map], null otherwise.
|
|
// ignore: prefer_constructors_over_static_methods
|
|
static SmartSearchDto? fromJson(dynamic value) {
|
|
upgradeDto(value, "SmartSearchDto");
|
|
if (value is Map) {
|
|
final json = value.cast<String, dynamic>();
|
|
|
|
return SmartSearchDto(
|
|
albumIds: json[r'albumIds'] is Iterable
|
|
? (json[r'albumIds'] as Iterable).cast<String>().toList(growable: false)
|
|
: const [],
|
|
city: mapValueOfType<String>(json, r'city'),
|
|
country: mapValueOfType<String>(json, r'country'),
|
|
createdAfter: mapDateTime(json, r'createdAfter', r''),
|
|
createdBefore: mapDateTime(json, r'createdBefore', r''),
|
|
deviceId: mapValueOfType<String>(json, r'deviceId'),
|
|
isEncoded: mapValueOfType<bool>(json, r'isEncoded'),
|
|
isFavorite: mapValueOfType<bool>(json, r'isFavorite'),
|
|
isMotion: mapValueOfType<bool>(json, r'isMotion'),
|
|
isNotInAlbum: mapValueOfType<bool>(json, r'isNotInAlbum'),
|
|
isOffline: mapValueOfType<bool>(json, r'isOffline'),
|
|
language: mapValueOfType<String>(json, r'language'),
|
|
lensModel: mapValueOfType<String>(json, r'lensModel'),
|
|
libraryId: mapValueOfType<String>(json, r'libraryId'),
|
|
make: mapValueOfType<String>(json, r'make'),
|
|
model: mapValueOfType<String>(json, r'model'),
|
|
ocr: mapValueOfType<String>(json, r'ocr'),
|
|
order: AssetOrder.fromJson(json[r'order']),
|
|
page: num.parse('${json[r'page']}'),
|
|
personIds: json[r'personIds'] is Iterable
|
|
? (json[r'personIds'] as Iterable).cast<String>().toList(growable: false)
|
|
: const [],
|
|
query: mapValueOfType<String>(json, r'query'),
|
|
queryAssetId: mapValueOfType<String>(json, r'queryAssetId'),
|
|
rating: num.parse('${json[r'rating']}'),
|
|
size: num.parse('${json[r'size']}'),
|
|
state: mapValueOfType<String>(json, r'state'),
|
|
tagIds: json[r'tagIds'] is Iterable
|
|
? (json[r'tagIds'] as Iterable).cast<String>().toList(growable: false)
|
|
: const [],
|
|
takenAfter: mapDateTime(json, r'takenAfter', r''),
|
|
takenBefore: mapDateTime(json, r'takenBefore', r''),
|
|
trashedAfter: mapDateTime(json, r'trashedAfter', r''),
|
|
trashedBefore: mapDateTime(json, r'trashedBefore', r''),
|
|
type: AssetTypeEnum.fromJson(json[r'type']),
|
|
updatedAfter: mapDateTime(json, r'updatedAfter', r''),
|
|
updatedBefore: mapDateTime(json, r'updatedBefore', r''),
|
|
visibility: AssetVisibility.fromJson(json[r'visibility']),
|
|
withDeleted: mapValueOfType<bool>(json, r'withDeleted'),
|
|
withExif: mapValueOfType<bool>(json, r'withExif'),
|
|
);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
static List<SmartSearchDto> listFromJson(dynamic json, {bool growable = false,}) {
|
|
final result = <SmartSearchDto>[];
|
|
if (json is List && json.isNotEmpty) {
|
|
for (final row in json) {
|
|
final value = SmartSearchDto.fromJson(row);
|
|
if (value != null) {
|
|
result.add(value);
|
|
}
|
|
}
|
|
}
|
|
return result.toList(growable: growable);
|
|
}
|
|
|
|
static Map<String, SmartSearchDto> mapFromJson(dynamic json) {
|
|
final map = <String, SmartSearchDto>{};
|
|
if (json is Map && json.isNotEmpty) {
|
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
|
for (final entry in json.entries) {
|
|
final value = SmartSearchDto.fromJson(entry.value);
|
|
if (value != null) {
|
|
map[entry.key] = value;
|
|
}
|
|
}
|
|
}
|
|
return map;
|
|
}
|
|
|
|
// maps a json object with a list of SmartSearchDto-objects as value to a dart map
|
|
static Map<String, List<SmartSearchDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
|
|
final map = <String, List<SmartSearchDto>>{};
|
|
if (json is Map && json.isNotEmpty) {
|
|
// ignore: parameter_assignments
|
|
json = json.cast<String, dynamic>();
|
|
for (final entry in json.entries) {
|
|
map[entry.key] = SmartSearchDto.listFromJson(entry.value, growable: growable,);
|
|
}
|
|
}
|
|
return map;
|
|
}
|
|
|
|
/// The list of required keys that must be present in a JSON.
|
|
static const requiredKeys = <String>{
|
|
};
|
|
}
|
|
|