Erweiterungen

This commit is contained in:
Sven committed 2024-02-05 17:01:39 +01:00
1 parent 1f4234e381
commit dd88480f29
4 files changed
+345 -147

No files matched your search

-2
View File
@@ -77,8 +77,6 @@ class MyApp extends StatelessWidget {
Geolocator.getPositionStream(locationSettings: locationSettings).listen((Position? position) { Geolocator.getPositionStream(locationSettings: locationSettings).listen((Position? position) {
MyApp.currentPosition = position; MyApp.currentPosition = position;
Util.logInfo(position == null ? 'Unknown' : '${position.latitude.toString()}, ${position.longitude.toString()}');
}); });
} }
} }
+2 -1
View File
@@ -74,7 +74,8 @@ const JobSchema = CollectionSchema(
embeddedSchemas: { embeddedSchemas: {
r'JobTour': JobTourSchema, r'JobTour': JobTourSchema,
r'TourPosition': TourPositionSchema, r'TourPosition': TourPositionSchema,
r'TourTask': TourTaskSchema r'TourTask': TourTaskSchema,
r'TourEntry': TourEntrySchema
}, },
getId: _jobGetId, getId: _jobGetId,
getLinks: _jobGetLinks, getLinks: _jobGetLinks,
+18 -1
View File
@@ -23,7 +23,7 @@ class TourTask {
late int? taskArrival; late int? taskArrival;
@JsonKey(name: 'task_fin_work') @JsonKey(name: 'task_fin_work')
late int? taskFinWork; late int? taskFinWork;
late List<String>? entries; late List<TourEntry>? entries;
TourTask(); TourTask();
@@ -31,3 +31,20 @@ class TourTask {
Map<String, dynamic> toJson() => _$TourTaskToJson(this); Map<String, dynamic> toJson() => _$TourTaskToJson(this);
} }
@embedded
@JsonSerializable()
class TourEntry {
late int code;
late String text;
@JsonKey(name: 'query_remark')
late bool queryRemark;
TourEntry();
factory TourEntry.fromJson(Map<String, dynamic> json) => _$TourEntryFromJson(json);
Map<String, dynamic> toJson() => _$TourEntryToJson(this);
}
+325 -143
View File
@@ -16,7 +16,8 @@ const TourTaskSchema = Schema(
r'entries': PropertySchema( r'entries': PropertySchema(
id: 0, id: 0,
name: r'entries', name: r'entries',
type: IsarType.stringList, type: IsarType.objectList,
target: r'TourEntry',
), ),
r'max': PropertySchema( r'max': PropertySchema(
id: 1, id: 1,
@@ -101,9 +102,11 @@ int _tourTaskEstimateSize(
if (list != null) { if (list != null) {
bytesCount += 3 + list.length * 3; bytesCount += 3 + list.length * 3;
{ {
final offsets = allOffsets[TourEntry]!;
for (var i = 0; i < list.length; i++) { for (var i = 0; i < list.length; i++) {
final value = list[i]; final value = list[i];
bytesCount += value.length * 3; bytesCount +=
TourEntrySchema.estimateSize(value, offsets, allOffsets);
} }
} }
} }
@@ -130,7 +133,12 @@ void _tourTaskSerialize(
List<int> offsets, List<int> offsets,
Map<Type, List<int>> allOffsets, Map<Type, List<int>> allOffsets,
) { ) {
writer.writeStringList(offsets[0], object.entries); writer.writeObjectList<TourEntry>(
offsets[0],
allOffsets,
TourEntrySchema.serialize,
object.entries,
);
writer.writeLong(offsets[1], object.max); writer.writeLong(offsets[1], object.max);
writer.writeLong(offsets[2], object.maxLen); writer.writeLong(offsets[2], object.maxLen);
writer.writeLong(offsets[3], object.min); writer.writeLong(offsets[3], object.min);
@@ -153,7 +161,12 @@ TourTask _tourTaskDeserialize(
Map<Type, List<int>> allOffsets, Map<Type, List<int>> allOffsets,
) { ) {
final object = TourTask(); final object = TourTask();
object.entries = reader.readStringList(offsets[0]); object.entries = reader.readObjectList<TourEntry>(
offsets[0],
TourEntrySchema.deserialize,
allOffsets,
TourEntry(),
);
object.max = reader.readLongOrNull(offsets[1]); object.max = reader.readLongOrNull(offsets[1]);
object.maxLen = reader.readLongOrNull(offsets[2]); object.maxLen = reader.readLongOrNull(offsets[2]);
object.min = reader.readLongOrNull(offsets[3]); object.min = reader.readLongOrNull(offsets[3]);
@@ -178,7 +191,12 @@ P _tourTaskDeserializeProp<P>(
) { ) {
switch (propertyId) { switch (propertyId) {
case 0: case 0:
return (reader.readStringList(offset)) as P; return (reader.readObjectList<TourEntry>(
offset,
TourEntrySchema.deserialize,
allOffsets,
TourEntry(),
)) as P;
case 1: case 1:
return (reader.readLongOrNull(offset)) as P; return (reader.readLongOrNull(offset)) as P;
case 2: case 2:
@@ -228,141 +246,6 @@ extension TourTaskQueryFilter
}); });
} }
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> entriesElementEqualTo(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'entries',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementGreaterThan(
String value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'entries',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementLessThan(
String value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'entries',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> entriesElementBetween(
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'entries',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementStartsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.startsWith(
property: r'entries',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementEndsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.endsWith(
property: r'entries',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementContains(String value, {bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.contains(
property: r'entries',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> entriesElementMatches(
String pattern,
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.matches(
property: r'entries',
wildcard: pattern,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementIsEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'entries',
value: '',
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition>
entriesElementIsNotEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
property: r'entries',
value: '',
));
});
}
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> entriesLengthEqualTo( QueryBuilder<TourTask, TourTask, QAfterFilterCondition> entriesLengthEqualTo(
int length) { int length) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
@@ -1370,7 +1253,294 @@ extension TourTaskQueryFilter
} }
extension TourTaskQueryObject extension TourTaskQueryObject
on QueryBuilder<TourTask, TourTask, QFilterCondition> {} on QueryBuilder<TourTask, TourTask, QFilterCondition> {
QueryBuilder<TourTask, TourTask, QAfterFilterCondition> entriesElement(
FilterQuery<TourEntry> q) {
return QueryBuilder.apply(this, (query) {
return query.object(q, r'entries');
});
}
}
// 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, always_specify_types
const TourEntrySchema = Schema(
name: r'TourEntry',
id: 5357864103781579158,
properties: {
r'code': PropertySchema(
id: 0,
name: r'code',
type: IsarType.long,
),
r'queryRemark': PropertySchema(
id: 1,
name: r'queryRemark',
type: IsarType.bool,
),
r'text': PropertySchema(
id: 2,
name: r'text',
type: IsarType.string,
)
},
estimateSize: _tourEntryEstimateSize,
serialize: _tourEntrySerialize,
deserialize: _tourEntryDeserialize,
deserializeProp: _tourEntryDeserializeProp,
);
int _tourEntryEstimateSize(
TourEntry object,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
var bytesCount = offsets.last;
bytesCount += 3 + object.text.length * 3;
return bytesCount;
}
void _tourEntrySerialize(
TourEntry object,
IsarWriter writer,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
writer.writeLong(offsets[0], object.code);
writer.writeBool(offsets[1], object.queryRemark);
writer.writeString(offsets[2], object.text);
}
TourEntry _tourEntryDeserialize(
Id id,
IsarReader reader,
List<int> offsets,
Map<Type, List<int>> allOffsets,
) {
final object = TourEntry();
object.code = reader.readLong(offsets[0]);
object.queryRemark = reader.readBool(offsets[1]);
object.text = reader.readString(offsets[2]);
return object;
}
P _tourEntryDeserializeProp<P>(
IsarReader reader,
int propertyId,
int offset,
Map<Type, List<int>> allOffsets,
) {
switch (propertyId) {
case 0:
return (reader.readLong(offset)) as P;
case 1:
return (reader.readBool(offset)) as P;
case 2:
return (reader.readString(offset)) as P;
default:
throw IsarError('Unknown property with id $propertyId');
}
}
extension TourEntryQueryFilter
on QueryBuilder<TourEntry, TourEntry, QFilterCondition> {
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> codeEqualTo(
int value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'code',
value: value,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> codeGreaterThan(
int value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'code',
value: value,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> codeLessThan(
int value, {
bool include = false,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'code',
value: value,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> codeBetween(
int lower,
int upper, {
bool includeLower = true,
bool includeUpper = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between(
property: r'code',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> queryRemarkEqualTo(
bool value) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'queryRemark',
value: value,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textEqualTo(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'text',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textGreaterThan(
String value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
include: include,
property: r'text',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textLessThan(
String value, {
bool include = false,
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan(
include: include,
property: r'text',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textBetween(
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'text',
lower: lower,
includeLower: includeLower,
upper: upper,
includeUpper: includeUpper,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textStartsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.startsWith(
property: r'text',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textEndsWith(
String value, {
bool caseSensitive = true,
}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.endsWith(
property: r'text',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textContains(
String value,
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.contains(
property: r'text',
value: value,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textMatches(
String pattern,
{bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.matches(
property: r'text',
wildcard: pattern,
caseSensitive: caseSensitive,
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textIsEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo(
property: r'text',
value: '',
));
});
}
QueryBuilder<TourEntry, TourEntry, QAfterFilterCondition> textIsNotEmpty() {
return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan(
property: r'text',
value: '',
));
});
}
}
extension TourEntryQueryObject
on QueryBuilder<TourEntry, TourEntry, QFilterCondition> {}
// ************************************************************************** // **************************************************************************
// JsonSerializableGenerator // JsonSerializableGenerator
@@ -1390,8 +1560,9 @@ TourTask _$TourTaskFromJson(Map<String, dynamic> json) => TourTask()
..txt = (json['txt'] as List<dynamic>?)?.map((e) => e as String).toList() ..txt = (json['txt'] as List<dynamic>?)?.map((e) => e as String).toList()
..taskArrival = json['task_arrival'] as int? ..taskArrival = json['task_arrival'] as int?
..taskFinWork = json['task_fin_work'] as int? ..taskFinWork = json['task_fin_work'] as int?
..entries = ..entries = (json['entries'] as List<dynamic>?)
(json['entries'] as List<dynamic>?)?.map((e) => e as String).toList(); ?.map((e) => TourEntry.fromJson(e as Map<String, dynamic>))
.toList();
Map<String, dynamic> _$TourTaskToJson(TourTask instance) => <String, dynamic>{ Map<String, dynamic> _$TourTaskToJson(TourTask instance) => <String, dynamic>{
's_id': instance.sId, 's_id': instance.sId,
@@ -1409,3 +1580,14 @@ Map<String, dynamic> _$TourTaskToJson(TourTask instance) => <String, dynamic>{
'task_fin_work': instance.taskFinWork, 'task_fin_work': instance.taskFinWork,
'entries': instance.entries, 'entries': instance.entries,
}; };
TourEntry _$TourEntryFromJson(Map<String, dynamic> json) => TourEntry()
..code = json['code'] as int
..text = json['text'] as String
..queryRemark = json['query_remark'] as bool;
Map<String, dynamic> _$TourEntryToJson(TourEntry instance) => <String, dynamic>{
'code': instance.code,
'text': instance.text,
'query_remark': instance.queryRemark,
};