mirror of
https://github.com/immich-app/immich.git
synced 2024-12-21 01:39:59 +02:00
8708867c1c
* feature(mobile): sync assets, albums & users to local database on device * try to fix tests * move DB sync operations to new SyncService * clear db on user logout * fix reason for endless loading timeline * fix error when deleting album * fix thumbnail of device albums * add a few comments * fix Hive box not open in album service when loading local assets * adjust tests to int IDs * fix bug: show all albums when Recent is selected * update generated api * reworked Recents album isAll handling * guard against wrongly interleaved sync operations * fix: timeline asset ordering (sort asset state by created at) * fix: sort assets in albums by created at
1339 lines
37 KiB
Dart
1339 lines
37 KiB
Dart
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
|
|
part of 'user.dart';
|
|
|
|
// **************************************************************************
|
|
// IsarCollectionGenerator
|
|
// **************************************************************************
|
|
|
|
// coverage:ignore-file
|
|
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters
|
|
|
|
extension GetUserCollection on Isar {
|
|
IsarCollection<User> get users => this.collection();
|
|
}
|
|
|
|
const UserSchema = CollectionSchema(
|
|
name: r'User',
|
|
id: -7838171048429979076,
|
|
properties: {
|
|
r'email': PropertySchema(
|
|
id: 0,
|
|
name: r'email',
|
|
type: IsarType.string,
|
|
),
|
|
r'firstName': PropertySchema(
|
|
id: 1,
|
|
name: r'firstName',
|
|
type: IsarType.string,
|
|
),
|
|
r'id': PropertySchema(
|
|
id: 2,
|
|
name: r'id',
|
|
type: IsarType.string,
|
|
),
|
|
r'isAdmin': PropertySchema(
|
|
id: 3,
|
|
name: r'isAdmin',
|
|
type: IsarType.bool,
|
|
),
|
|
r'lastName': PropertySchema(
|
|
id: 4,
|
|
name: r'lastName',
|
|
type: IsarType.string,
|
|
),
|
|
r'updatedAt': PropertySchema(
|
|
id: 5,
|
|
name: r'updatedAt',
|
|
type: IsarType.dateTime,
|
|
)
|
|
},
|
|
estimateSize: _userEstimateSize,
|
|
serialize: _userSerialize,
|
|
deserialize: _userDeserialize,
|
|
deserializeProp: _userDeserializeProp,
|
|
idName: r'isarId',
|
|
indexes: {
|
|
r'id': IndexSchema(
|
|
id: -3268401673993471357,
|
|
name: r'id',
|
|
unique: true,
|
|
replace: false,
|
|
properties: [
|
|
IndexPropertySchema(
|
|
name: r'id',
|
|
type: IndexType.hash,
|
|
caseSensitive: true,
|
|
)
|
|
],
|
|
)
|
|
},
|
|
links: {
|
|
r'albums': LinkSchema(
|
|
id: -8764917375410137318,
|
|
name: r'albums',
|
|
target: r'Album',
|
|
single: false,
|
|
linkName: r'owner',
|
|
),
|
|
r'sharedAlbums': LinkSchema(
|
|
id: -7037628715076287024,
|
|
name: r'sharedAlbums',
|
|
target: r'Album',
|
|
single: false,
|
|
linkName: r'sharedUsers',
|
|
)
|
|
},
|
|
embeddedSchemas: {},
|
|
getId: _userGetId,
|
|
getLinks: _userGetLinks,
|
|
attach: _userAttach,
|
|
version: '3.0.5',
|
|
);
|
|
|
|
int _userEstimateSize(
|
|
User object,
|
|
List<int> offsets,
|
|
Map<Type, List<int>> allOffsets,
|
|
) {
|
|
var bytesCount = offsets.last;
|
|
bytesCount += 3 + object.email.length * 3;
|
|
bytesCount += 3 + object.firstName.length * 3;
|
|
bytesCount += 3 + object.id.length * 3;
|
|
bytesCount += 3 + object.lastName.length * 3;
|
|
return bytesCount;
|
|
}
|
|
|
|
void _userSerialize(
|
|
User object,
|
|
IsarWriter writer,
|
|
List<int> offsets,
|
|
Map<Type, List<int>> allOffsets,
|
|
) {
|
|
writer.writeString(offsets[0], object.email);
|
|
writer.writeString(offsets[1], object.firstName);
|
|
writer.writeString(offsets[2], object.id);
|
|
writer.writeBool(offsets[3], object.isAdmin);
|
|
writer.writeString(offsets[4], object.lastName);
|
|
writer.writeDateTime(offsets[5], object.updatedAt);
|
|
}
|
|
|
|
User _userDeserialize(
|
|
Id id,
|
|
IsarReader reader,
|
|
List<int> offsets,
|
|
Map<Type, List<int>> allOffsets,
|
|
) {
|
|
final object = User(
|
|
email: reader.readString(offsets[0]),
|
|
firstName: reader.readString(offsets[1]),
|
|
id: reader.readString(offsets[2]),
|
|
isAdmin: reader.readBool(offsets[3]),
|
|
lastName: reader.readString(offsets[4]),
|
|
updatedAt: reader.readDateTime(offsets[5]),
|
|
);
|
|
return object;
|
|
}
|
|
|
|
P _userDeserializeProp<P>(
|
|
IsarReader reader,
|
|
int propertyId,
|
|
int offset,
|
|
Map<Type, List<int>> allOffsets,
|
|
) {
|
|
switch (propertyId) {
|
|
case 0:
|
|
return (reader.readString(offset)) as P;
|
|
case 1:
|
|
return (reader.readString(offset)) as P;
|
|
case 2:
|
|
return (reader.readString(offset)) as P;
|
|
case 3:
|
|
return (reader.readBool(offset)) as P;
|
|
case 4:
|
|
return (reader.readString(offset)) as P;
|
|
case 5:
|
|
return (reader.readDateTime(offset)) as P;
|
|
default:
|
|
throw IsarError('Unknown property with id $propertyId');
|
|
}
|
|
}
|
|
|
|
Id _userGetId(User object) {
|
|
return object.isarId;
|
|
}
|
|
|
|
List<IsarLinkBase<dynamic>> _userGetLinks(User object) {
|
|
return [object.albums, object.sharedAlbums];
|
|
}
|
|
|
|
void _userAttach(IsarCollection<dynamic> col, Id id, User object) {
|
|
object.albums.attach(col, col.isar.collection<Album>(), r'albums', id);
|
|
object.sharedAlbums
|
|
.attach(col, col.isar.collection<Album>(), r'sharedAlbums', id);
|
|
}
|
|
|
|
extension UserByIndex on IsarCollection<User> {
|
|
Future<User?> getById(String id) {
|
|
return getByIndex(r'id', [id]);
|
|
}
|
|
|
|
User? getByIdSync(String id) {
|
|
return getByIndexSync(r'id', [id]);
|
|
}
|
|
|
|
Future<bool> deleteById(String id) {
|
|
return deleteByIndex(r'id', [id]);
|
|
}
|
|
|
|
bool deleteByIdSync(String id) {
|
|
return deleteByIndexSync(r'id', [id]);
|
|
}
|
|
|
|
Future<List<User?>> getAllById(List<String> idValues) {
|
|
final values = idValues.map((e) => [e]).toList();
|
|
return getAllByIndex(r'id', values);
|
|
}
|
|
|
|
List<User?> getAllByIdSync(List<String> idValues) {
|
|
final values = idValues.map((e) => [e]).toList();
|
|
return getAllByIndexSync(r'id', values);
|
|
}
|
|
|
|
Future<int> deleteAllById(List<String> idValues) {
|
|
final values = idValues.map((e) => [e]).toList();
|
|
return deleteAllByIndex(r'id', values);
|
|
}
|
|
|
|
int deleteAllByIdSync(List<String> idValues) {
|
|
final values = idValues.map((e) => [e]).toList();
|
|
return deleteAllByIndexSync(r'id', values);
|
|
}
|
|
|
|
Future<Id> putById(User object) {
|
|
return putByIndex(r'id', object);
|
|
}
|
|
|
|
Id putByIdSync(User object, {bool saveLinks = true}) {
|
|
return putByIndexSync(r'id', object, saveLinks: saveLinks);
|
|
}
|
|
|
|
Future<List<Id>> putAllById(List<User> objects) {
|
|
return putAllByIndex(r'id', objects);
|
|
}
|
|
|
|
List<Id> putAllByIdSync(List<User> objects, {bool saveLinks = true}) {
|
|
return putAllByIndexSync(r'id', objects, saveLinks: saveLinks);
|
|
}
|
|
}
|
|
|
|
extension UserQueryWhereSort on QueryBuilder<User, User, QWhere> {
|
|
QueryBuilder<User, User, QAfterWhere> anyIsarId() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addWhereClause(const IdWhereClause.any());
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQueryWhere on QueryBuilder<User, User, QWhereClause> {
|
|
QueryBuilder<User, User, QAfterWhereClause> isarIdEqualTo(Id isarId) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addWhereClause(IdWhereClause.between(
|
|
lower: isarId,
|
|
upper: isarId,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterWhereClause> isarIdNotEqualTo(Id isarId) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
if (query.whereSort == Sort.asc) {
|
|
return query
|
|
.addWhereClause(
|
|
IdWhereClause.lessThan(upper: isarId, includeUpper: false),
|
|
)
|
|
.addWhereClause(
|
|
IdWhereClause.greaterThan(lower: isarId, includeLower: false),
|
|
);
|
|
} else {
|
|
return query
|
|
.addWhereClause(
|
|
IdWhereClause.greaterThan(lower: isarId, includeLower: false),
|
|
)
|
|
.addWhereClause(
|
|
IdWhereClause.lessThan(upper: isarId, includeUpper: false),
|
|
);
|
|
}
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterWhereClause> isarIdGreaterThan(Id isarId,
|
|
{bool include = false}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addWhereClause(
|
|
IdWhereClause.greaterThan(lower: isarId, includeLower: include),
|
|
);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterWhereClause> isarIdLessThan(Id isarId,
|
|
{bool include = false}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addWhereClause(
|
|
IdWhereClause.lessThan(upper: isarId, includeUpper: include),
|
|
);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterWhereClause> isarIdBetween(
|
|
Id lowerIsarId,
|
|
Id upperIsarId, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addWhereClause(IdWhereClause.between(
|
|
lower: lowerIsarId,
|
|
includeLower: includeLower,
|
|
upper: upperIsarId,
|
|
includeUpper: includeUpper,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterWhereClause> idEqualTo(String id) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addWhereClause(IndexWhereClause.equalTo(
|
|
indexName: r'id',
|
|
value: [id],
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterWhereClause> idNotEqualTo(String id) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
if (query.whereSort == Sort.asc) {
|
|
return query
|
|
.addWhereClause(IndexWhereClause.between(
|
|
indexName: r'id',
|
|
lower: [],
|
|
upper: [id],
|
|
includeUpper: false,
|
|
))
|
|
.addWhereClause(IndexWhereClause.between(
|
|
indexName: r'id',
|
|
lower: [id],
|
|
includeLower: false,
|
|
upper: [],
|
|
));
|
|
} else {
|
|
return query
|
|
.addWhereClause(IndexWhereClause.between(
|
|
indexName: r'id',
|
|
lower: [id],
|
|
includeLower: false,
|
|
upper: [],
|
|
))
|
|
.addWhereClause(IndexWhereClause.between(
|
|
indexName: r'id',
|
|
lower: [],
|
|
upper: [id],
|
|
includeUpper: false,
|
|
));
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQueryFilter on QueryBuilder<User, User, QFilterCondition> {
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailEqualTo(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'email',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailGreaterThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
include: include,
|
|
property: r'email',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailLessThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.lessThan(
|
|
include: include,
|
|
property: r'email',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailBetween(
|
|
String lower,
|
|
String upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.between(
|
|
property: r'email',
|
|
lower: lower,
|
|
includeLower: includeLower,
|
|
upper: upper,
|
|
includeUpper: includeUpper,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailStartsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.startsWith(
|
|
property: r'email',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailEndsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.endsWith(
|
|
property: r'email',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailContains(String value,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.contains(
|
|
property: r'email',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailMatches(String pattern,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.matches(
|
|
property: r'email',
|
|
wildcard: pattern,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailIsEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'email',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> emailIsNotEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
property: r'email',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameEqualTo(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'firstName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameGreaterThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
include: include,
|
|
property: r'firstName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameLessThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.lessThan(
|
|
include: include,
|
|
property: r'firstName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameBetween(
|
|
String lower,
|
|
String upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.between(
|
|
property: r'firstName',
|
|
lower: lower,
|
|
includeLower: includeLower,
|
|
upper: upper,
|
|
includeUpper: includeUpper,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameStartsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.startsWith(
|
|
property: r'firstName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameEndsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.endsWith(
|
|
property: r'firstName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameContains(
|
|
String value,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.contains(
|
|
property: r'firstName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameMatches(
|
|
String pattern,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.matches(
|
|
property: r'firstName',
|
|
wildcard: pattern,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameIsEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'firstName',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> firstNameIsNotEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
property: r'firstName',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idEqualTo(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'id',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idGreaterThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
include: include,
|
|
property: r'id',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idLessThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.lessThan(
|
|
include: include,
|
|
property: r'id',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idBetween(
|
|
String lower,
|
|
String upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.between(
|
|
property: r'id',
|
|
lower: lower,
|
|
includeLower: includeLower,
|
|
upper: upper,
|
|
includeUpper: includeUpper,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idStartsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.startsWith(
|
|
property: r'id',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idEndsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.endsWith(
|
|
property: r'id',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idContains(String value,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.contains(
|
|
property: r'id',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idMatches(String pattern,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.matches(
|
|
property: r'id',
|
|
wildcard: pattern,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idIsEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'id',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> idIsNotEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
property: r'id',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> isAdminEqualTo(bool value) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'isAdmin',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> isarIdEqualTo(Id value) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'isarId',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> isarIdGreaterThan(
|
|
Id value, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
include: include,
|
|
property: r'isarId',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> isarIdLessThan(
|
|
Id value, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.lessThan(
|
|
include: include,
|
|
property: r'isarId',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> isarIdBetween(
|
|
Id lower,
|
|
Id upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.between(
|
|
property: r'isarId',
|
|
lower: lower,
|
|
includeLower: includeLower,
|
|
upper: upper,
|
|
includeUpper: includeUpper,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameEqualTo(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'lastName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameGreaterThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
include: include,
|
|
property: r'lastName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameLessThan(
|
|
String value, {
|
|
bool include = false,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.lessThan(
|
|
include: include,
|
|
property: r'lastName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameBetween(
|
|
String lower,
|
|
String upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.between(
|
|
property: r'lastName',
|
|
lower: lower,
|
|
includeLower: includeLower,
|
|
upper: upper,
|
|
includeUpper: includeUpper,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameStartsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.startsWith(
|
|
property: r'lastName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameEndsWith(
|
|
String value, {
|
|
bool caseSensitive = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.endsWith(
|
|
property: r'lastName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameContains(String value,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.contains(
|
|
property: r'lastName',
|
|
value: value,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameMatches(
|
|
String pattern,
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.matches(
|
|
property: r'lastName',
|
|
wildcard: pattern,
|
|
caseSensitive: caseSensitive,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameIsEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'lastName',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> lastNameIsNotEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
property: r'lastName',
|
|
value: '',
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> updatedAtEqualTo(
|
|
DateTime value) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.equalTo(
|
|
property: r'updatedAt',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> updatedAtGreaterThan(
|
|
DateTime value, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
include: include,
|
|
property: r'updatedAt',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> updatedAtLessThan(
|
|
DateTime value, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.lessThan(
|
|
include: include,
|
|
property: r'updatedAt',
|
|
value: value,
|
|
));
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> updatedAtBetween(
|
|
DateTime lower,
|
|
DateTime upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addFilterCondition(FilterCondition.between(
|
|
property: r'updatedAt',
|
|
lower: lower,
|
|
includeLower: includeLower,
|
|
upper: upper,
|
|
includeUpper: includeUpper,
|
|
));
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQueryObject on QueryBuilder<User, User, QFilterCondition> {}
|
|
|
|
extension UserQueryLinks on QueryBuilder<User, User, QFilterCondition> {
|
|
QueryBuilder<User, User, QAfterFilterCondition> albums(FilterQuery<Album> q) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.link(q, r'albums');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> albumsLengthEqualTo(
|
|
int length) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'albums', length, true, length, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> albumsIsEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'albums', 0, true, 0, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> albumsIsNotEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'albums', 0, false, 999999, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> albumsLengthLessThan(
|
|
int length, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'albums', 0, true, length, include);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> albumsLengthGreaterThan(
|
|
int length, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'albums', length, include, 999999, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> albumsLengthBetween(
|
|
int lower,
|
|
int upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(
|
|
r'albums', lower, includeLower, upper, includeUpper);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbums(
|
|
FilterQuery<Album> q) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.link(q, r'sharedAlbums');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbumsLengthEqualTo(
|
|
int length) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'sharedAlbums', length, true, length, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbumsIsEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'sharedAlbums', 0, true, 0, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbumsIsNotEmpty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'sharedAlbums', 0, false, 999999, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbumsLengthLessThan(
|
|
int length, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'sharedAlbums', 0, true, length, include);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbumsLengthGreaterThan(
|
|
int length, {
|
|
bool include = false,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(r'sharedAlbums', length, include, 999999, true);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterFilterCondition> sharedAlbumsLengthBetween(
|
|
int lower,
|
|
int upper, {
|
|
bool includeLower = true,
|
|
bool includeUpper = true,
|
|
}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.linkLength(
|
|
r'sharedAlbums', lower, includeLower, upper, includeUpper);
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQuerySortBy on QueryBuilder<User, User, QSortBy> {
|
|
QueryBuilder<User, User, QAfterSortBy> sortByEmail() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'email', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByEmailDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'email', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByFirstName() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'firstName', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByFirstNameDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'firstName', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortById() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'id', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByIdDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'id', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByIsAdmin() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'isAdmin', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByIsAdminDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'isAdmin', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByLastName() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'lastName', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByLastNameDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'lastName', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByUpdatedAt() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'updatedAt', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> sortByUpdatedAtDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'updatedAt', Sort.desc);
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQuerySortThenBy on QueryBuilder<User, User, QSortThenBy> {
|
|
QueryBuilder<User, User, QAfterSortBy> thenByEmail() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'email', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByEmailDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'email', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByFirstName() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'firstName', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByFirstNameDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'firstName', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenById() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'id', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByIdDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'id', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByIsAdmin() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'isAdmin', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByIsAdminDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'isAdmin', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByIsarId() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'isarId', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByIsarIdDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'isarId', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByLastName() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'lastName', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByLastNameDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'lastName', Sort.desc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByUpdatedAt() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'updatedAt', Sort.asc);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QAfterSortBy> thenByUpdatedAtDesc() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addSortBy(r'updatedAt', Sort.desc);
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQueryWhereDistinct on QueryBuilder<User, User, QDistinct> {
|
|
QueryBuilder<User, User, QDistinct> distinctByEmail(
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addDistinctBy(r'email', caseSensitive: caseSensitive);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QDistinct> distinctByFirstName(
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addDistinctBy(r'firstName', caseSensitive: caseSensitive);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QDistinct> distinctById(
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addDistinctBy(r'id', caseSensitive: caseSensitive);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QDistinct> distinctByIsAdmin() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addDistinctBy(r'isAdmin');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QDistinct> distinctByLastName(
|
|
{bool caseSensitive = true}) {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addDistinctBy(r'lastName', caseSensitive: caseSensitive);
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, User, QDistinct> distinctByUpdatedAt() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addDistinctBy(r'updatedAt');
|
|
});
|
|
}
|
|
}
|
|
|
|
extension UserQueryProperty on QueryBuilder<User, User, QQueryProperty> {
|
|
QueryBuilder<User, int, QQueryOperations> isarIdProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'isarId');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, String, QQueryOperations> emailProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'email');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, String, QQueryOperations> firstNameProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'firstName');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, String, QQueryOperations> idProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'id');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, bool, QQueryOperations> isAdminProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'isAdmin');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, String, QQueryOperations> lastNameProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'lastName');
|
|
});
|
|
}
|
|
|
|
QueryBuilder<User, DateTime, QQueryOperations> updatedAtProperty() {
|
|
return QueryBuilder.apply(this, (query) {
|
|
return query.addPropertyName(r'updatedAt');
|
|
});
|
|
}
|
|
}
|