Erweiterungen Ranking
This commit is contained in:
1 parent
972855789d
commit
9f89673751
5 files changed
+266
-509
No files matched your search
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:stadtbote/content_views/utils/content_view_widget.dart';
|
import 'package:stadtbote/content_views/utils/content_view_widget.dart';
|
||||||
import 'package:stadtbote/content_views/utils/header_info.dart';
|
import 'package:stadtbote/content_views/utils/header_info.dart';
|
||||||
import 'package:stadtbote/model/ranking.dart';
|
import 'package:stadtbote/model/rank.dart';
|
||||||
import 'package:stadtbote/popups/tasks_popups/zip_popup.dart';
|
import 'package:stadtbote/popups/tasks_popups/zip_popup.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/zip_message.dart';
|
import 'package:stadtbote/protocoll_messages/zip_message.dart';
|
||||||
import 'package:stadtbote/tools/mqtt_core.dart';
|
import 'package:stadtbote/tools/mqtt_core.dart';
|
||||||
@@ -41,14 +41,14 @@ class ApproachAreaPage extends ContentViewWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||||
late Ranking? _ranking;
|
late List<Rank>? _rankings;
|
||||||
|
|
||||||
late bool _initCompleted = false;
|
late bool _initCompleted = false;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
Future.delayed(const Duration(seconds: 0), () async {
|
Future.delayed(const Duration(seconds: 0), () async {
|
||||||
_ranking = await MyApp.isarInstance.rankings.where().findFirst();
|
_rankings = await MyApp.isarInstance.ranks.where().findAll();
|
||||||
|
|
||||||
_initCompleted = true;
|
_initCompleted = true;
|
||||||
|
|
||||||
@@ -82,9 +82,9 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
|||||||
List<Widget> _fillColumns() {
|
List<Widget> _fillColumns() {
|
||||||
List<Widget> columns = [];
|
List<Widget> columns = [];
|
||||||
|
|
||||||
if (_ranking != null) {
|
if (_rankings != null) {
|
||||||
for (int i = 0; i < _ranking!.ranks.length; i++) {
|
for (int i = 0; i < _rankings!.length; i++) {
|
||||||
var rank = _ranking!.ranks[i];
|
var rank = _rankings![i];
|
||||||
|
|
||||||
List<Widget> entries = [];
|
List<Widget> entries = [];
|
||||||
entries.add(
|
entries.add(
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@ import 'package:isar/isar.dart';
|
|||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:stadtbote/messages/pop_content_view_message.dart';
|
import 'package:stadtbote/messages/pop_content_view_message.dart';
|
||||||
import 'package:stadtbote/model/message.dart';
|
import 'package:stadtbote/model/message.dart';
|
||||||
import 'package:stadtbote/model/ranking.dart';
|
import 'package:stadtbote/model/rank.dart';
|
||||||
import 'package:stadtbote/model/status.dart';
|
import 'package:stadtbote/model/status.dart';
|
||||||
import 'package:stadtbote/model/task_info.dart';
|
import 'package:stadtbote/model/task_info.dart';
|
||||||
import 'package:stadtbote/popups/accept_jobs_popup.dart';
|
import 'package:stadtbote/popups/accept_jobs_popup.dart';
|
||||||
@@ -34,7 +34,7 @@ Future<void> main() async {
|
|||||||
JobSchema,
|
JobSchema,
|
||||||
TaskInfoSchema,
|
TaskInfoSchema,
|
||||||
MessageSchema,
|
MessageSchema,
|
||||||
RankingSchema
|
RankSchema
|
||||||
], directory: dir.path);
|
], directory: dir.path);
|
||||||
|
|
||||||
runZonedGuarded(() {}, (error, stackTrace) {
|
runZonedGuarded(() {}, (error, stackTrace) {
|
||||||
|
|||||||
@@ -1,33 +1,18 @@
|
|||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:json_annotation/json_annotation.dart';
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
part 'ranking.g.dart';
|
part 'rank.g.dart';
|
||||||
|
|
||||||
@collection
|
@collection
|
||||||
@JsonSerializable()
|
@JsonSerializable()
|
||||||
class Ranking {
|
|
||||||
@JsonKey(name: 'id', defaultValue: 0)
|
|
||||||
late Id id = 0;
|
|
||||||
|
|
||||||
late List<Rank> ranks;
|
|
||||||
|
|
||||||
Ranking();
|
|
||||||
|
|
||||||
factory Ranking.fromJson(Map<String, dynamic> json) => _$RankingFromJson(json);
|
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => _$RankingToJson(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@embedded
|
|
||||||
@JsonSerializable()
|
|
||||||
class Rank {
|
class Rank {
|
||||||
late int id;
|
late Id id;
|
||||||
|
|
||||||
late String zip;
|
late String zip;
|
||||||
|
|
||||||
late String area;
|
late String area;
|
||||||
|
|
||||||
late String time;
|
late int time;
|
||||||
|
|
||||||
late List<Vehicle> vehicles;
|
late List<Vehicle> vehicles;
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
part of 'ranking.dart';
|
part of 'rank.dart';
|
||||||
|
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
// IsarCollectionGenerator
|
// IsarCollectionGenerator
|
||||||
@@ -9,85 +9,108 @@ part of 'ranking.dart';
|
|||||||
// coverage:ignore-file
|
// 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
|
// 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
|
||||||
|
|
||||||
extension GetRankingCollection on Isar {
|
extension GetRankCollection on Isar {
|
||||||
IsarCollection<Ranking> get rankings => this.collection();
|
IsarCollection<Rank> get ranks => this.collection();
|
||||||
}
|
}
|
||||||
|
|
||||||
const RankingSchema = CollectionSchema(
|
const RankSchema = CollectionSchema(
|
||||||
name: r'Ranking',
|
name: r'Rank',
|
||||||
id: 923686411839286896,
|
id: 4990427334210593033,
|
||||||
properties: {
|
properties: {
|
||||||
r'ranks': PropertySchema(
|
r'area': PropertySchema(
|
||||||
id: 0,
|
id: 0,
|
||||||
name: r'ranks',
|
name: r'area',
|
||||||
|
type: IsarType.string,
|
||||||
|
),
|
||||||
|
r'time': PropertySchema(
|
||||||
|
id: 1,
|
||||||
|
name: r'time',
|
||||||
|
type: IsarType.long,
|
||||||
|
),
|
||||||
|
r'vehicles': PropertySchema(
|
||||||
|
id: 2,
|
||||||
|
name: r'vehicles',
|
||||||
type: IsarType.objectList,
|
type: IsarType.objectList,
|
||||||
target: r'Rank',
|
target: r'Vehicle',
|
||||||
|
),
|
||||||
|
r'zip': PropertySchema(
|
||||||
|
id: 3,
|
||||||
|
name: r'zip',
|
||||||
|
type: IsarType.string,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
estimateSize: _rankingEstimateSize,
|
estimateSize: _rankEstimateSize,
|
||||||
serialize: _rankingSerialize,
|
serialize: _rankSerialize,
|
||||||
deserialize: _rankingDeserialize,
|
deserialize: _rankDeserialize,
|
||||||
deserializeProp: _rankingDeserializeProp,
|
deserializeProp: _rankDeserializeProp,
|
||||||
idName: r'id',
|
idName: r'id',
|
||||||
indexes: {},
|
indexes: {},
|
||||||
links: {},
|
links: {},
|
||||||
embeddedSchemas: {r'Rank': RankSchema, r'Vehicle': VehicleSchema},
|
embeddedSchemas: {r'Vehicle': VehicleSchema},
|
||||||
getId: _rankingGetId,
|
getId: _rankGetId,
|
||||||
getLinks: _rankingGetLinks,
|
getLinks: _rankGetLinks,
|
||||||
attach: _rankingAttach,
|
attach: _rankAttach,
|
||||||
version: '3.1.0+1',
|
version: '3.1.0+1',
|
||||||
);
|
);
|
||||||
|
|
||||||
int _rankingEstimateSize(
|
int _rankEstimateSize(
|
||||||
Ranking object,
|
Rank object,
|
||||||
List<int> offsets,
|
List<int> offsets,
|
||||||
Map<Type, List<int>> allOffsets,
|
Map<Type, List<int>> allOffsets,
|
||||||
) {
|
) {
|
||||||
var bytesCount = offsets.last;
|
var bytesCount = offsets.last;
|
||||||
bytesCount += 3 + object.ranks.length * 3;
|
bytesCount += 3 + object.area.length * 3;
|
||||||
|
bytesCount += 3 + object.vehicles.length * 3;
|
||||||
{
|
{
|
||||||
final offsets = allOffsets[Rank]!;
|
final offsets = allOffsets[Vehicle]!;
|
||||||
for (var i = 0; i < object.ranks.length; i++) {
|
for (var i = 0; i < object.vehicles.length; i++) {
|
||||||
final value = object.ranks[i];
|
final value = object.vehicles[i];
|
||||||
bytesCount += RankSchema.estimateSize(value, offsets, allOffsets);
|
bytesCount += VehicleSchema.estimateSize(value, offsets, allOffsets);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bytesCount += 3 + object.zip.length * 3;
|
||||||
return bytesCount;
|
return bytesCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _rankingSerialize(
|
void _rankSerialize(
|
||||||
Ranking object,
|
Rank object,
|
||||||
IsarWriter writer,
|
IsarWriter writer,
|
||||||
List<int> offsets,
|
List<int> offsets,
|
||||||
Map<Type, List<int>> allOffsets,
|
Map<Type, List<int>> allOffsets,
|
||||||
) {
|
) {
|
||||||
writer.writeObjectList<Rank>(
|
writer.writeString(offsets[0], object.area);
|
||||||
offsets[0],
|
writer.writeLong(offsets[1], object.time);
|
||||||
|
writer.writeObjectList<Vehicle>(
|
||||||
|
offsets[2],
|
||||||
allOffsets,
|
allOffsets,
|
||||||
RankSchema.serialize,
|
VehicleSchema.serialize,
|
||||||
object.ranks,
|
object.vehicles,
|
||||||
);
|
);
|
||||||
|
writer.writeString(offsets[3], object.zip);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ranking _rankingDeserialize(
|
Rank _rankDeserialize(
|
||||||
Id id,
|
Id id,
|
||||||
IsarReader reader,
|
IsarReader reader,
|
||||||
List<int> offsets,
|
List<int> offsets,
|
||||||
Map<Type, List<int>> allOffsets,
|
Map<Type, List<int>> allOffsets,
|
||||||
) {
|
) {
|
||||||
final object = Ranking();
|
final object = Rank();
|
||||||
|
object.area = reader.readString(offsets[0]);
|
||||||
object.id = id;
|
object.id = id;
|
||||||
object.ranks = reader.readObjectList<Rank>(
|
object.time = reader.readLong(offsets[1]);
|
||||||
offsets[0],
|
object.vehicles = reader.readObjectList<Vehicle>(
|
||||||
RankSchema.deserialize,
|
offsets[2],
|
||||||
|
VehicleSchema.deserialize,
|
||||||
allOffsets,
|
allOffsets,
|
||||||
Rank(),
|
Vehicle(),
|
||||||
) ??
|
) ??
|
||||||
[];
|
[];
|
||||||
|
object.zip = reader.readString(offsets[3]);
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
P _rankingDeserializeProp<P>(
|
P _rankDeserializeProp<P>(
|
||||||
IsarReader reader,
|
IsarReader reader,
|
||||||
int propertyId,
|
int propertyId,
|
||||||
int offset,
|
int offset,
|
||||||
@@ -95,40 +118,46 @@ P _rankingDeserializeProp<P>(
|
|||||||
) {
|
) {
|
||||||
switch (propertyId) {
|
switch (propertyId) {
|
||||||
case 0:
|
case 0:
|
||||||
return (reader.readObjectList<Rank>(
|
return (reader.readString(offset)) as P;
|
||||||
|
case 1:
|
||||||
|
return (reader.readLong(offset)) as P;
|
||||||
|
case 2:
|
||||||
|
return (reader.readObjectList<Vehicle>(
|
||||||
offset,
|
offset,
|
||||||
RankSchema.deserialize,
|
VehicleSchema.deserialize,
|
||||||
allOffsets,
|
allOffsets,
|
||||||
Rank(),
|
Vehicle(),
|
||||||
) ??
|
) ??
|
||||||
[]) as P;
|
[]) as P;
|
||||||
|
case 3:
|
||||||
|
return (reader.readString(offset)) as P;
|
||||||
default:
|
default:
|
||||||
throw IsarError('Unknown property with id $propertyId');
|
throw IsarError('Unknown property with id $propertyId');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Id _rankingGetId(Ranking object) {
|
Id _rankGetId(Rank object) {
|
||||||
return object.id;
|
return object.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<IsarLinkBase<dynamic>> _rankingGetLinks(Ranking object) {
|
List<IsarLinkBase<dynamic>> _rankGetLinks(Rank object) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
void _rankingAttach(IsarCollection<dynamic> col, Id id, Ranking object) {
|
void _rankAttach(IsarCollection<dynamic> col, Id id, Rank object) {
|
||||||
object.id = id;
|
object.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
extension RankingQueryWhereSort on QueryBuilder<Ranking, Ranking, QWhere> {
|
extension RankQueryWhereSort on QueryBuilder<Rank, Rank, QWhere> {
|
||||||
QueryBuilder<Ranking, Ranking, QAfterWhere> anyId() {
|
QueryBuilder<Rank, Rank, QAfterWhere> anyId() {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(const IdWhereClause.any());
|
return query.addWhereClause(const IdWhereClause.any());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
extension RankQueryWhere on QueryBuilder<Rank, Rank, QWhereClause> {
|
||||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idEqualTo(Id id) {
|
QueryBuilder<Rank, Rank, QAfterWhereClause> idEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(IdWhereClause.between(
|
return query.addWhereClause(IdWhereClause.between(
|
||||||
lower: id,
|
lower: id,
|
||||||
@@ -137,7 +166,7 @@ extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idNotEqualTo(Id id) {
|
QueryBuilder<Rank, Rank, QAfterWhereClause> idNotEqualTo(Id id) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
if (query.whereSort == Sort.asc) {
|
if (query.whereSort == Sort.asc) {
|
||||||
return query
|
return query
|
||||||
@@ -159,7 +188,7 @@ extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idGreaterThan(Id id,
|
QueryBuilder<Rank, Rank, QAfterWhereClause> idGreaterThan(Id id,
|
||||||
{bool include = false}) {
|
{bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
@@ -168,7 +197,7 @@ extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idLessThan(Id id,
|
QueryBuilder<Rank, Rank, QAfterWhereClause> idLessThan(Id id,
|
||||||
{bool include = false}) {
|
{bool include = false}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addWhereClause(
|
return query.addWhereClause(
|
||||||
@@ -177,7 +206,7 @@ extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idBetween(
|
QueryBuilder<Rank, Rank, QAfterWhereClause> idBetween(
|
||||||
Id lowerId,
|
Id lowerId,
|
||||||
Id upperId, {
|
Id upperId, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
@@ -194,324 +223,6 @@ extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension RankingQueryFilter
|
|
||||||
on QueryBuilder<Ranking, Ranking, QFilterCondition> {
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idEqualTo(Id value) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'id',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idGreaterThan(
|
|
||||||
Id value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
include: include,
|
|
||||||
property: r'id',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idLessThan(
|
|
||||||
Id value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
|
||||||
include: include,
|
|
||||||
property: r'id',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idBetween(
|
|
||||||
Id lower,
|
|
||||||
Id upper, {
|
|
||||||
bool includeLower = true,
|
|
||||||
bool includeUpper = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
|
||||||
property: r'id',
|
|
||||||
lower: lower,
|
|
||||||
includeLower: includeLower,
|
|
||||||
upper: upper,
|
|
||||||
includeUpper: includeUpper,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthEqualTo(
|
|
||||||
int length) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'ranks',
|
|
||||||
length,
|
|
||||||
true,
|
|
||||||
length,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'ranks',
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'ranks',
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
999999,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthLessThan(
|
|
||||||
int length, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'ranks',
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
length,
|
|
||||||
include,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthGreaterThan(
|
|
||||||
int length, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'ranks',
|
|
||||||
length,
|
|
||||||
include,
|
|
||||||
999999,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthBetween(
|
|
||||||
int lower,
|
|
||||||
int upper, {
|
|
||||||
bool includeLower = true,
|
|
||||||
bool includeUpper = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'ranks',
|
|
||||||
lower,
|
|
||||||
includeLower,
|
|
||||||
upper,
|
|
||||||
includeUpper,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension RankingQueryObject
|
|
||||||
on QueryBuilder<Ranking, Ranking, QFilterCondition> {
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksElement(
|
|
||||||
FilterQuery<Rank> q) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.object(q, r'ranks');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension RankingQueryLinks
|
|
||||||
on QueryBuilder<Ranking, Ranking, QFilterCondition> {}
|
|
||||||
|
|
||||||
extension RankingQuerySortBy on QueryBuilder<Ranking, Ranking, QSortBy> {}
|
|
||||||
|
|
||||||
extension RankingQuerySortThenBy
|
|
||||||
on QueryBuilder<Ranking, Ranking, QSortThenBy> {
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterSortBy> thenById() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addSortBy(r'id', Sort.asc);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, Ranking, QAfterSortBy> thenByIdDesc() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addSortBy(r'id', Sort.desc);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension RankingQueryWhereDistinct
|
|
||||||
on QueryBuilder<Ranking, Ranking, QDistinct> {}
|
|
||||||
|
|
||||||
extension RankingQueryProperty
|
|
||||||
on QueryBuilder<Ranking, Ranking, QQueryProperty> {
|
|
||||||
QueryBuilder<Ranking, int, QQueryOperations> idProperty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addPropertyName(r'id');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Ranking, List<Rank>, QQueryOperations> ranksProperty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addPropertyName(r'ranks');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// **************************************************************************
|
|
||||||
// IsarEmbeddedGenerator
|
|
||||||
// **************************************************************************
|
|
||||||
|
|
||||||
// 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 RankSchema = Schema(
|
|
||||||
name: r'Rank',
|
|
||||||
id: 4990427334210593033,
|
|
||||||
properties: {
|
|
||||||
r'area': PropertySchema(
|
|
||||||
id: 0,
|
|
||||||
name: r'area',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'id': PropertySchema(
|
|
||||||
id: 1,
|
|
||||||
name: r'id',
|
|
||||||
type: IsarType.long,
|
|
||||||
),
|
|
||||||
r'time': PropertySchema(
|
|
||||||
id: 2,
|
|
||||||
name: r'time',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'vehicles': PropertySchema(
|
|
||||||
id: 3,
|
|
||||||
name: r'vehicles',
|
|
||||||
type: IsarType.objectList,
|
|
||||||
target: r'Vehicle',
|
|
||||||
),
|
|
||||||
r'zip': PropertySchema(
|
|
||||||
id: 4,
|
|
||||||
name: r'zip',
|
|
||||||
type: IsarType.string,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
estimateSize: _rankEstimateSize,
|
|
||||||
serialize: _rankSerialize,
|
|
||||||
deserialize: _rankDeserialize,
|
|
||||||
deserializeProp: _rankDeserializeProp,
|
|
||||||
);
|
|
||||||
|
|
||||||
int _rankEstimateSize(
|
|
||||||
Rank object,
|
|
||||||
List<int> offsets,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
var bytesCount = offsets.last;
|
|
||||||
bytesCount += 3 + object.area.length * 3;
|
|
||||||
bytesCount += 3 + object.time.length * 3;
|
|
||||||
bytesCount += 3 + object.vehicles.length * 3;
|
|
||||||
{
|
|
||||||
final offsets = allOffsets[Vehicle]!;
|
|
||||||
for (var i = 0; i < object.vehicles.length; i++) {
|
|
||||||
final value = object.vehicles[i];
|
|
||||||
bytesCount += VehicleSchema.estimateSize(value, offsets, allOffsets);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bytesCount += 3 + object.zip.length * 3;
|
|
||||||
return bytesCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _rankSerialize(
|
|
||||||
Rank object,
|
|
||||||
IsarWriter writer,
|
|
||||||
List<int> offsets,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
writer.writeString(offsets[0], object.area);
|
|
||||||
writer.writeLong(offsets[1], object.id);
|
|
||||||
writer.writeString(offsets[2], object.time);
|
|
||||||
writer.writeObjectList<Vehicle>(
|
|
||||||
offsets[3],
|
|
||||||
allOffsets,
|
|
||||||
VehicleSchema.serialize,
|
|
||||||
object.vehicles,
|
|
||||||
);
|
|
||||||
writer.writeString(offsets[4], object.zip);
|
|
||||||
}
|
|
||||||
|
|
||||||
Rank _rankDeserialize(
|
|
||||||
Id id,
|
|
||||||
IsarReader reader,
|
|
||||||
List<int> offsets,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
final object = Rank();
|
|
||||||
object.area = reader.readString(offsets[0]);
|
|
||||||
object.id = reader.readLong(offsets[1]);
|
|
||||||
object.time = reader.readString(offsets[2]);
|
|
||||||
object.vehicles = reader.readObjectList<Vehicle>(
|
|
||||||
offsets[3],
|
|
||||||
VehicleSchema.deserialize,
|
|
||||||
allOffsets,
|
|
||||||
Vehicle(),
|
|
||||||
) ??
|
|
||||||
[];
|
|
||||||
object.zip = reader.readString(offsets[4]);
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
|
|
||||||
P _rankDeserializeProp<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.readLong(offset)) as P;
|
|
||||||
case 2:
|
|
||||||
return (reader.readString(offset)) as P;
|
|
||||||
case 3:
|
|
||||||
return (reader.readObjectList<Vehicle>(
|
|
||||||
offset,
|
|
||||||
VehicleSchema.deserialize,
|
|
||||||
allOffsets,
|
|
||||||
Vehicle(),
|
|
||||||
) ??
|
|
||||||
[]) as P;
|
|
||||||
case 4:
|
|
||||||
return (reader.readString(offset)) as P;
|
|
||||||
default:
|
|
||||||
throw IsarError('Unknown property with id $propertyId');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaEqualTo(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaEqualTo(
|
||||||
String value, {
|
String value, {
|
||||||
@@ -641,7 +352,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idEqualTo(int value) {
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> idEqualTo(Id value) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(FilterCondition.equalTo(
|
||||||
property: r'id',
|
property: r'id',
|
||||||
@@ -651,7 +362,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idGreaterThan(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> idGreaterThan(
|
||||||
int value, {
|
Id value, {
|
||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
@@ -664,7 +375,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idLessThan(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> idLessThan(
|
||||||
int value, {
|
Id value, {
|
||||||
bool include = false,
|
bool include = false,
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
@@ -677,8 +388,8 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idBetween(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> idBetween(
|
||||||
int lower,
|
Id lower,
|
||||||
int upper, {
|
Id upper, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
}) {
|
}) {
|
||||||
@@ -693,55 +404,46 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeEqualTo(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeEqualTo(int value) {
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
return query.addFilterCondition(FilterCondition.equalTo(
|
||||||
property: r'time',
|
property: r'time',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeGreaterThan(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeGreaterThan(
|
||||||
String value, {
|
int value, {
|
||||||
bool include = false,
|
bool include = false,
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'time',
|
property: r'time',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeLessThan(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeLessThan(
|
||||||
String value, {
|
int value, {
|
||||||
bool include = false,
|
bool include = false,
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
return query.addFilterCondition(FilterCondition.lessThan(
|
||||||
include: include,
|
include: include,
|
||||||
property: r'time',
|
property: r'time',
|
||||||
value: value,
|
value: value,
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeBetween(
|
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeBetween(
|
||||||
String lower,
|
int lower,
|
||||||
String upper, {
|
int upper, {
|
||||||
bool includeLower = true,
|
bool includeLower = true,
|
||||||
bool includeUpper = true,
|
bool includeUpper = true,
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
}) {
|
||||||
return QueryBuilder.apply(this, (query) {
|
return QueryBuilder.apply(this, (query) {
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
return query.addFilterCondition(FilterCondition.between(
|
||||||
@@ -750,73 +452,6 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
includeLower: includeLower,
|
includeLower: includeLower,
|
||||||
upper: upper,
|
upper: upper,
|
||||||
includeUpper: includeUpper,
|
includeUpper: includeUpper,
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeStartsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
|
||||||
property: r'time',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeEndsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
|
||||||
property: r'time',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeContains(String value,
|
|
||||||
{bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
|
||||||
property: r'time',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeMatches(String pattern,
|
|
||||||
{bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
|
||||||
property: r'time',
|
|
||||||
wildcard: pattern,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'time',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
property: r'time',
|
|
||||||
value: '',
|
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1043,6 +678,154 @@ extension RankQueryObject on QueryBuilder<Rank, Rank, QFilterCondition> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension RankQueryLinks on QueryBuilder<Rank, Rank, QFilterCondition> {}
|
||||||
|
|
||||||
|
extension RankQuerySortBy on QueryBuilder<Rank, Rank, QSortBy> {
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> sortByArea() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'area', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> sortByAreaDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'area', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> sortByTime() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'time', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> sortByTimeDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'time', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> sortByZip() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'zip', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> sortByZipDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'zip', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension RankQuerySortThenBy on QueryBuilder<Rank, Rank, QSortThenBy> {
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByArea() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'area', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByAreaDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'area', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenById() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'id', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByIdDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'id', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByTime() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'time', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByTimeDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'time', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByZip() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'zip', Sort.asc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QAfterSortBy> thenByZipDesc() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addSortBy(r'zip', Sort.desc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension RankQueryWhereDistinct on QueryBuilder<Rank, Rank, QDistinct> {
|
||||||
|
QueryBuilder<Rank, Rank, QDistinct> distinctByArea(
|
||||||
|
{bool caseSensitive = true}) {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addDistinctBy(r'area', caseSensitive: caseSensitive);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QDistinct> distinctByTime() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addDistinctBy(r'time');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, Rank, QDistinct> distinctByZip(
|
||||||
|
{bool caseSensitive = true}) {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addDistinctBy(r'zip', caseSensitive: caseSensitive);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension RankQueryProperty on QueryBuilder<Rank, Rank, QQueryProperty> {
|
||||||
|
QueryBuilder<Rank, int, QQueryOperations> idProperty() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addPropertyName(r'id');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, String, QQueryOperations> areaProperty() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addPropertyName(r'area');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, int, QQueryOperations> timeProperty() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addPropertyName(r'time');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, List<Vehicle>, QQueryOperations> vehiclesProperty() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addPropertyName(r'vehicles');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
QueryBuilder<Rank, String, QQueryOperations> zipProperty() {
|
||||||
|
return QueryBuilder.apply(this, (query) {
|
||||||
|
return query.addPropertyName(r'zip');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// **************************************************************************
|
||||||
|
// IsarEmbeddedGenerator
|
||||||
|
// **************************************************************************
|
||||||
|
|
||||||
// coverage:ignore-file
|
// 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
|
// 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
|
||||||
|
|
||||||
@@ -1263,22 +1046,11 @@ extension VehicleQueryObject
|
|||||||
// JsonSerializableGenerator
|
// JsonSerializableGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
Ranking _$RankingFromJson(Map<String, dynamic> json) => Ranking()
|
|
||||||
..id = json['id'] as int? ?? 0
|
|
||||||
..ranks = (json['ranks'] as List<dynamic>)
|
|
||||||
.map((e) => Rank.fromJson(e as Map<String, dynamic>))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
Map<String, dynamic> _$RankingToJson(Ranking instance) => <String, dynamic>{
|
|
||||||
'id': instance.id,
|
|
||||||
'ranks': instance.ranks,
|
|
||||||
};
|
|
||||||
|
|
||||||
Rank _$RankFromJson(Map<String, dynamic> json) => Rank()
|
Rank _$RankFromJson(Map<String, dynamic> json) => Rank()
|
||||||
..id = json['id'] as int
|
..id = json['id'] as int
|
||||||
..zip = json['zip'] as String
|
..zip = json['zip'] as String
|
||||||
..area = json['area'] as String
|
..area = json['area'] as String
|
||||||
..time = json['time'] as String
|
..time = json['time'] as int
|
||||||
..vehicles = (json['vehicles'] as List<dynamic>)
|
..vehicles = (json['vehicles'] as List<dynamic>)
|
||||||
.map((e) => Vehicle.fromJson(e as Map<String, dynamic>))
|
.map((e) => Vehicle.fromJson(e as Map<String, dynamic>))
|
||||||
.toList();
|
.toList();
|
||||||
+16
-16
@@ -6,7 +6,7 @@ import 'package:flutter/services.dart';
|
|||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
import 'package:mqtt_client/mqtt_client.dart';
|
import 'package:mqtt_client/mqtt_client.dart';
|
||||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||||
import 'package:stadtbote/model/ranking.dart';
|
import 'package:stadtbote/model/rank.dart';
|
||||||
import 'package:stadtbote/model/status.dart';
|
import 'package:stadtbote/model/status.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
||||||
import 'package:stadtbote/model/job.dart';
|
import 'package:stadtbote/model/job.dart';
|
||||||
@@ -172,31 +172,29 @@ class MqttCore {
|
|||||||
var topicArray = topic!.split('/');
|
var topicArray = topic!.split('/');
|
||||||
var messageType = topicArray[topicArray.length - 1];
|
var messageType = topicArray[topicArray.length - 1];
|
||||||
|
|
||||||
Map<String, dynamic> messageData = jsonDecode(payload);
|
|
||||||
|
|
||||||
switch(messageType) {
|
switch(messageType) {
|
||||||
case 'session':
|
case 'session':
|
||||||
_sessionMessageReceived(messageData);
|
_sessionMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'status':
|
case 'status':
|
||||||
_statusMessageReceived(messageData);
|
_statusMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'ranks':
|
case 'ranking':
|
||||||
//_rankingMessageReceived(payloadData);
|
_rankingMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'job':
|
case 'job':
|
||||||
_jobMessageReceived(messageData);
|
_jobMessageReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'job_del':
|
case 'job_del':
|
||||||
_jobDeleteReceived(messageData);
|
_jobDeleteReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'sync_request':
|
case 'sync_request':
|
||||||
_syncRequestReceived(messageData);
|
_syncRequestReceived(jsonDecode(payload));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "mssg":
|
case "mssg":
|
||||||
@@ -216,6 +214,7 @@ class MqttCore {
|
|||||||
_mqttClient.subscribe(_fromServerTopic + "/status", MqttQos.exactlyOnce);
|
_mqttClient.subscribe(_fromServerTopic + "/status", MqttQos.exactlyOnce);
|
||||||
_mqttClient.subscribe(_fromServerTopic + "/job", MqttQos.exactlyOnce);
|
_mqttClient.subscribe(_fromServerTopic + "/job", MqttQos.exactlyOnce);
|
||||||
_mqttClient.subscribe(_fromServerTopic + "/job_del", MqttQos.exactlyOnce);
|
_mqttClient.subscribe(_fromServerTopic + "/job_del", MqttQos.exactlyOnce);
|
||||||
|
_mqttClient.subscribe(_fromServerTopic + "/ranking", MqttQos.exactlyOnce);
|
||||||
Util.logInfo('subscribed to topic: $_fromServerTopic');
|
Util.logInfo('subscribed to topic: $_fromServerTopic');
|
||||||
|
|
||||||
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.connected));
|
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.connected));
|
||||||
@@ -250,13 +249,14 @@ class MqttCore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _rankingMessageReceived(List<dynamic> payloadData) async {
|
void _rankingMessageReceived(List<dynamic> payloadData) async {
|
||||||
Map<String, dynamic> rankingMap = {};
|
for (var entry in payloadData) {
|
||||||
rankingMap["ranks"] = payloadData;
|
var rank = Rank.fromJson(entry);
|
||||||
var ranking = Ranking.fromJson(rankingMap);
|
|
||||||
|
await MyApp.isarInstance.writeTxn(() async {
|
||||||
|
await MyApp.isarInstance.ranks.put(rank);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
await MyApp.isarInstance.writeTxn(() async {
|
|
||||||
await MyApp.isarInstance.rankings.put(ranking);
|
|
||||||
});
|
|
||||||
|
|
||||||
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());
|
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user