Erweiterungen
This commit is contained in:
1 parent
31fe4c5a06
commit
98581c9a39
13 files changed
+2789
-993
No files matched your search
@@ -1,9 +1,20 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.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/popups/tasks_popups/zip_popup.dart';
|
||||||
|
import 'package:stadtbote/protocoll_messages/zip_message.dart';
|
||||||
|
import 'package:stadtbote/tools/mqtt_core.dart';
|
||||||
|
|
||||||
|
import '../main.dart';
|
||||||
import '../tools/util.dart';
|
import '../tools/util.dart';
|
||||||
|
|
||||||
|
enum ModeEnum {
|
||||||
|
set,
|
||||||
|
request
|
||||||
|
}
|
||||||
|
|
||||||
class ApproachAreaPage extends ContentViewWidget {
|
class ApproachAreaPage extends ContentViewWidget {
|
||||||
const ApproachAreaPage({super.key});
|
const ApproachAreaPage({super.key});
|
||||||
|
|
||||||
@@ -14,7 +25,7 @@ class ApproachAreaPage extends ContentViewWidget {
|
|||||||
Future<HeaderInfo> getHeaderInfo(BuildContext context) async {
|
Future<HeaderInfo> getHeaderInfo(BuildContext context) async {
|
||||||
return HeaderInfo(
|
return HeaderInfo(
|
||||||
titleWidget: const Text(
|
titleWidget: const Text(
|
||||||
'Angenommene Aufträge',
|
'Anfahrtsbereich',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: 20.0,
|
fontSize: 20.0,
|
||||||
@@ -30,14 +41,14 @@ class ApproachAreaPage extends ContentViewWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||||
//late List<Job> _jobs;
|
late Ranking? _ranking;
|
||||||
|
|
||||||
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 {
|
||||||
//_jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).findAll();
|
_ranking = await MyApp.isarInstance.rankings.where().findFirst();
|
||||||
|
|
||||||
_initCompleted = true;
|
_initCompleted = true;
|
||||||
|
|
||||||
@@ -53,25 +64,158 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
|||||||
return Util.getWaitWidget(context);
|
return Util.getWaitWidget(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
return const SingleChildScrollView(
|
return Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: InteractiveViewer(
|
||||||
|
alignment: Alignment.topCenter,
|
||||||
|
child: SingleChildScrollView(
|
||||||
scrollDirection: Axis.vertical,
|
scrollDirection: Axis.vertical,
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
child: Row(
|
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: _fillColumns()),
|
||||||
children: [
|
),
|
||||||
SizedBox(width: 80, child: Text('Row 1')),
|
|
||||||
SizedBox(width: 80, child: Text('Row 2')),
|
|
||||||
SizedBox(width: 80, child: Text('Row 3')),
|
|
||||||
SizedBox(width: 80, child: Text('Row 4')),
|
|
||||||
SizedBox(width: 80, child: Text('Row 5')),
|
|
||||||
SizedBox(width: 80, child: Text('Row 6')),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void _clicked(Job job) {
|
List<Widget> _fillColumns() {
|
||||||
MessageService().publish<ContentViewWidget>(Constants.messageTopicPushContentView, arguments: TourListPage(job: job));
|
List<Widget> columns = [];
|
||||||
}*/
|
|
||||||
|
if (_ranking != null) {
|
||||||
|
for (int i = 0; i < _ranking!.ranks.length; i++) {
|
||||||
|
var rank = _ranking!.ranks[i];
|
||||||
|
|
||||||
|
List<Widget> entries = [];
|
||||||
|
entries.add(
|
||||||
|
GestureDetector(
|
||||||
|
onTap: ()=> {
|
||||||
|
if (i == 0) {
|
||||||
|
showZipPopup(context, 'ACHTUNG: Wenn Sie Ihre PLZ ändern, verlieren Sie Ihr Ranking!\n', 'Freimelden', (zip) => {_sendZip(rank, zip, ModeEnum.set)}),
|
||||||
|
} else {
|
||||||
|
showZipPopup(context, 'ACHTUNG: Wenn Sie Ihre PLZ ändern, verlieren Sie Ihr Ranking!\n', 'OK', (zip) => {_sendZip(rank, zip, ModeEnum.request)}),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
padding: const EdgeInsets.all(4),
|
||||||
|
margin: const EdgeInsets.all(2),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
color: i == 0 ? Colors.lightGreen : Colors.white,
|
||||||
|
border: Border.all(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
width: 85,
|
||||||
|
height: 60,
|
||||||
|
child: Column(children: [
|
||||||
|
Text(
|
||||||
|
rank.zip,
|
||||||
|
style: const TextStyle(fontSize: 20),
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
rank.area,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
for (int j = 0; j < rank.vehicles.length; j++) {
|
||||||
|
var vehicle = rank.vehicles[j];
|
||||||
|
|
||||||
|
var imageFilename = vehicle.self == true ? "assets/mein_${mapVehicleTypeToImageName(vehicle.type)}" : "assets/${mapVehicleTypeToImageName(vehicle.type)}";
|
||||||
|
entries.add(Container(
|
||||||
|
padding: const EdgeInsets.all(4),
|
||||||
|
margin: const EdgeInsets.all(2),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
color: Colors.white,
|
||||||
|
border: Border.all(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
width: 80,
|
||||||
|
height: 60,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Image.asset(imageFilename, width: 30, height: 30),
|
||||||
|
const SizedBox(width: 10),
|
||||||
|
Text(
|
||||||
|
mapVehicleTypeToText(vehicle.type)
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
columns.add(Align(
|
||||||
|
alignment: Alignment.topLeft,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: entries,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
|
||||||
|
_sendZip(Rank rank, String zip, ModeEnum mode) {
|
||||||
|
var zipMessage = ZipMessage();
|
||||||
|
|
||||||
|
if (mode == ModeEnum.set) {
|
||||||
|
var position = MyApp.currentPosition;
|
||||||
|
|
||||||
|
zipMessage.setPos = ZipSetPos();
|
||||||
|
zipMessage.setPos!.zip = zip;
|
||||||
|
|
||||||
|
if (position != null) {
|
||||||
|
zipMessage.setPos!.track = ZipTrack();
|
||||||
|
zipMessage.setPos!.track.time = DateTime.now().toIso8601String();
|
||||||
|
zipMessage.setPos!.track.pos = ZipTrackPos();
|
||||||
|
zipMessage.setPos!.track.pos!.lat = position.latitude;
|
||||||
|
zipMessage.setPos!.track.pos!.long = position.longitude;
|
||||||
|
zipMessage.setPos!.track.pos!.acc = position.accuracy.toInt();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
zipMessage.reqZip = ZipReqZip();
|
||||||
|
zipMessage.reqZip!.id = rank.id;
|
||||||
|
zipMessage.reqZip!.zip = zip;
|
||||||
|
}
|
||||||
|
|
||||||
|
MqttCore.instance.publishPayloadMessage("rank", zipMessage.toJson());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
private void SendMessage(int columnNumber, string zipNumber)
|
||||||
|
{
|
||||||
|
var payloadObject = new JObject();
|
||||||
|
|
||||||
|
if (columnNumber == 0)
|
||||||
|
{
|
||||||
|
var setPosObject = new JObject();
|
||||||
|
payloadObject.Add(new JProperty("set_pos", setPosObject));
|
||||||
|
|
||||||
|
setPosObject.Add(new JProperty("zip", zipNumber));
|
||||||
|
setPosObject.Add(new JProperty("track", CreateTrackObject()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var regZipObject = new JObject();
|
||||||
|
payloadObject.Add(new JProperty("reg_zip", regZipObject));
|
||||||
|
|
||||||
|
regZipObject.Add(new JProperty("id", columnNumber));
|
||||||
|
regZipObject.Add(new JProperty("zip", zipNumber));
|
||||||
|
}
|
||||||
|
|
||||||
|
var json = payloadObject.ToString();
|
||||||
|
|
||||||
|
App.Core.SendJsonMessageAsync("rank", payloadObject);
|
||||||
|
}
|
||||||
|
*/
|
||||||
@@ -259,7 +259,7 @@ class _MainPageState extends State<MainPage> {
|
|||||||
widget.sidValueNotifier.value = sessionStatusInfoUpdateMessage.status.sid;
|
widget.sidValueNotifier.value = sessionStatusInfoUpdateMessage.status.sid;
|
||||||
});
|
});
|
||||||
|
|
||||||
MessageService().subscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, this, (statusInfoUpdateMessage) {
|
MessageService().subscribe<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdated, this, (statusInfoUpdateMessage) {
|
||||||
_updateHeader();
|
_updateHeader();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +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/PopContentViewMessage.dart';
|
import 'package:stadtbote/messages/PopContentViewMessage.dart';
|
||||||
import 'package:stadtbote/model/message.dart';
|
import 'package:stadtbote/model/message.dart';
|
||||||
|
import 'package:stadtbote/model/ranking.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';
|
||||||
@@ -33,6 +34,7 @@ Future<void> main() async {
|
|||||||
JobSchema,
|
JobSchema,
|
||||||
TaskInfoSchema,
|
TaskInfoSchema,
|
||||||
MessageSchema,
|
MessageSchema,
|
||||||
|
RankingSchema
|
||||||
], directory: dir.path);
|
], directory: dir.path);
|
||||||
|
|
||||||
runZonedGuarded(() {}, (error, stackTrace) {
|
runZonedGuarded(() {}, (error, stackTrace) {
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
import 'package:isar/isar.dart';
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'ranking.g.dart';
|
||||||
|
|
||||||
|
@collection
|
||||||
|
@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 {
|
||||||
|
late int id;
|
||||||
|
|
||||||
|
late String zip;
|
||||||
|
|
||||||
|
late String area;
|
||||||
|
|
||||||
|
late String time;
|
||||||
|
|
||||||
|
late List<Vehicle> vehicles;
|
||||||
|
|
||||||
|
Rank();
|
||||||
|
|
||||||
|
factory Rank.fromJson(Map<String, dynamic> json) => _$RankFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$RankToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@embedded
|
||||||
|
@JsonSerializable()
|
||||||
|
class Vehicle {
|
||||||
|
late int id;
|
||||||
|
|
||||||
|
late int type;
|
||||||
|
|
||||||
|
@JsonKey(name: 'self', defaultValue: false)
|
||||||
|
late bool? self;
|
||||||
|
|
||||||
|
Vehicle();
|
||||||
|
|
||||||
|
factory Vehicle.fromJson(Map<String, dynamic> json) => _$VehicleFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$VehicleToJson(this);
|
||||||
|
}
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,53 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:stadtbote/model/task_info.dart';
|
||||||
|
import 'package:stadtbote/tools/util.dart';
|
||||||
|
|
||||||
|
showZipPopup(BuildContext context, String text, String buttonText, Function(String) onFinished) async {
|
||||||
|
await showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return AlertDialog(
|
||||||
|
contentPadding: EdgeInsets.zero,
|
||||||
|
shadowColor: Colors.transparent,
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
content: StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
|
||||||
|
TextEditingController textEditingController = TextEditingController();
|
||||||
|
|
||||||
|
return SizedBox(
|
||||||
|
key: GlobalKey(),
|
||||||
|
height: 280,
|
||||||
|
width: MediaQuery.of(context).size.width * 0.8,
|
||||||
|
child: Container(
|
||||||
|
height: 100,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
color: Colors.white,
|
||||||
|
border: Border.all(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(35.0),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Text(text, style: TextStyle(fontWeight: FontWeight.bold)),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
Util.getDefaultTextField('Postleitzahl',
|
||||||
|
type: TextInputType.text,
|
||||||
|
formatter: [FilteringTextInputFormatter.singleLineFormatter],
|
||||||
|
controller: textEditingController,
|
||||||
|
autofocus: true),
|
||||||
|
const SizedBox(height: 20),
|
||||||
|
getDefaultButton(buttonText, () => {
|
||||||
|
Navigator.of(context).pop(),
|
||||||
|
|
||||||
|
onFinished(textEditingController.text)})
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -2,973 +2,6 @@
|
|||||||
|
|
||||||
part of 'fin_tour_message.dart';
|
part of 'fin_tour_message.dart';
|
||||||
|
|
||||||
// **************************************************************************
|
|
||||||
// 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 FinTourTaskSchema = Schema(
|
|
||||||
name: r'FinTourTask',
|
|
||||||
id: 8687341112458224246,
|
|
||||||
properties: {
|
|
||||||
r'code': PropertySchema(
|
|
||||||
id: 0,
|
|
||||||
name: r'code',
|
|
||||||
type: IsarType.long,
|
|
||||||
),
|
|
||||||
r'codes': PropertySchema(
|
|
||||||
id: 1,
|
|
||||||
name: r'codes',
|
|
||||||
type: IsarType.stringList,
|
|
||||||
),
|
|
||||||
r'pos': PropertySchema(
|
|
||||||
id: 2,
|
|
||||||
name: r'pos',
|
|
||||||
type: IsarType.object,
|
|
||||||
target: r'FinTaskPos',
|
|
||||||
),
|
|
||||||
r'sId': PropertySchema(
|
|
||||||
id: 3,
|
|
||||||
name: r'sId',
|
|
||||||
type: IsarType.long,
|
|
||||||
),
|
|
||||||
r'sign': PropertySchema(
|
|
||||||
id: 4,
|
|
||||||
name: r'sign',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'time': PropertySchema(
|
|
||||||
id: 5,
|
|
||||||
name: r'time',
|
|
||||||
type: IsarType.string,
|
|
||||||
),
|
|
||||||
r'val': PropertySchema(
|
|
||||||
id: 6,
|
|
||||||
name: r'val',
|
|
||||||
type: IsarType.string,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
estimateSize: _finTourTaskEstimateSize,
|
|
||||||
serialize: _finTourTaskSerialize,
|
|
||||||
deserialize: _finTourTaskDeserialize,
|
|
||||||
deserializeProp: _finTourTaskDeserializeProp,
|
|
||||||
);
|
|
||||||
|
|
||||||
int _finTourTaskEstimateSize(
|
|
||||||
FinTourTask object,
|
|
||||||
List<int> offsets,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
var bytesCount = offsets.last;
|
|
||||||
{
|
|
||||||
final list = object.codes;
|
|
||||||
if (list != null) {
|
|
||||||
bytesCount += 3 + list.length * 3;
|
|
||||||
{
|
|
||||||
for (var i = 0; i < list.length; i++) {
|
|
||||||
final value = list[i];
|
|
||||||
bytesCount += value.length * 3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bytesCount += 3 +
|
|
||||||
FinTaskPosSchema.estimateSize(
|
|
||||||
object.pos, allOffsets[FinTaskPos]!, allOffsets);
|
|
||||||
{
|
|
||||||
final value = object.sign;
|
|
||||||
if (value != null) {
|
|
||||||
bytesCount += 3 + value.length * 3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bytesCount += 3 + object.time.length * 3;
|
|
||||||
{
|
|
||||||
final value = object.val;
|
|
||||||
if (value != null) {
|
|
||||||
bytesCount += 3 + value.length * 3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return bytesCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _finTourTaskSerialize(
|
|
||||||
FinTourTask object,
|
|
||||||
IsarWriter writer,
|
|
||||||
List<int> offsets,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
writer.writeLong(offsets[0], object.code);
|
|
||||||
writer.writeStringList(offsets[1], object.codes);
|
|
||||||
writer.writeObject<FinTaskPos>(
|
|
||||||
offsets[2],
|
|
||||||
allOffsets,
|
|
||||||
FinTaskPosSchema.serialize,
|
|
||||||
object.pos,
|
|
||||||
);
|
|
||||||
writer.writeLong(offsets[3], object.sId);
|
|
||||||
writer.writeString(offsets[4], object.sign);
|
|
||||||
writer.writeString(offsets[5], object.time);
|
|
||||||
writer.writeString(offsets[6], object.val);
|
|
||||||
}
|
|
||||||
|
|
||||||
FinTourTask _finTourTaskDeserialize(
|
|
||||||
Id id,
|
|
||||||
IsarReader reader,
|
|
||||||
List<int> offsets,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
final object = FinTourTask();
|
|
||||||
object.code = reader.readLongOrNull(offsets[0]);
|
|
||||||
object.codes = reader.readStringList(offsets[1]);
|
|
||||||
object.pos = reader.readObjectOrNull<FinTaskPos>(
|
|
||||||
offsets[2],
|
|
||||||
FinTaskPosSchema.deserialize,
|
|
||||||
allOffsets,
|
|
||||||
) ??
|
|
||||||
FinTaskPos();
|
|
||||||
object.sId = reader.readLong(offsets[3]);
|
|
||||||
object.sign = reader.readStringOrNull(offsets[4]);
|
|
||||||
object.time = reader.readString(offsets[5]);
|
|
||||||
object.val = reader.readStringOrNull(offsets[6]);
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
|
|
||||||
P _finTourTaskDeserializeProp<P>(
|
|
||||||
IsarReader reader,
|
|
||||||
int propertyId,
|
|
||||||
int offset,
|
|
||||||
Map<Type, List<int>> allOffsets,
|
|
||||||
) {
|
|
||||||
switch (propertyId) {
|
|
||||||
case 0:
|
|
||||||
return (reader.readLongOrNull(offset)) as P;
|
|
||||||
case 1:
|
|
||||||
return (reader.readStringList(offset)) as P;
|
|
||||||
case 2:
|
|
||||||
return (reader.readObjectOrNull<FinTaskPos>(
|
|
||||||
offset,
|
|
||||||
FinTaskPosSchema.deserialize,
|
|
||||||
allOffsets,
|
|
||||||
) ??
|
|
||||||
FinTaskPos()) as P;
|
|
||||||
case 3:
|
|
||||||
return (reader.readLong(offset)) as P;
|
|
||||||
case 4:
|
|
||||||
return (reader.readStringOrNull(offset)) as P;
|
|
||||||
case 5:
|
|
||||||
return (reader.readString(offset)) as P;
|
|
||||||
case 6:
|
|
||||||
return (reader.readStringOrNull(offset)) as P;
|
|
||||||
default:
|
|
||||||
throw IsarError('Unknown property with id $propertyId');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension FinTourTaskQueryFilter
|
|
||||||
on QueryBuilder<FinTourTask, FinTourTask, QFilterCondition> {
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> codeIsNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
|
||||||
property: r'code',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codeIsNotNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
|
||||||
property: r'code',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> codeEqualTo(
|
|
||||||
int? value) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'code',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, QAfterFilterCondition> codesIsNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
|
||||||
property: r'codes',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesIsNotNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
|
||||||
property: r'codes',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementEqualTo(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'codes',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementGreaterThan(
|
|
||||||
String value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
include: include,
|
|
||||||
property: r'codes',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementLessThan(
|
|
||||||
String value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
|
||||||
include: include,
|
|
||||||
property: r'codes',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementBetween(
|
|
||||||
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'codes',
|
|
||||||
lower: lower,
|
|
||||||
includeLower: includeLower,
|
|
||||||
upper: upper,
|
|
||||||
includeUpper: includeUpper,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementStartsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
|
||||||
property: r'codes',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementEndsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
|
||||||
property: r'codes',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementContains(String value, {bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
|
||||||
property: r'codes',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementMatches(String pattern, {bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
|
||||||
property: r'codes',
|
|
||||||
wildcard: pattern,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'codes',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesElementIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
property: r'codes',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesLengthEqualTo(int length) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'codes',
|
|
||||||
length,
|
|
||||||
true,
|
|
||||||
length,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> codesIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'codes',
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'codes',
|
|
||||||
0,
|
|
||||||
false,
|
|
||||||
999999,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesLengthLessThan(
|
|
||||||
int length, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'codes',
|
|
||||||
0,
|
|
||||||
true,
|
|
||||||
length,
|
|
||||||
include,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesLengthGreaterThan(
|
|
||||||
int length, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'codes',
|
|
||||||
length,
|
|
||||||
include,
|
|
||||||
999999,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
codesLengthBetween(
|
|
||||||
int lower,
|
|
||||||
int upper, {
|
|
||||||
bool includeLower = true,
|
|
||||||
bool includeUpper = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.listLength(
|
|
||||||
r'codes',
|
|
||||||
lower,
|
|
||||||
includeLower,
|
|
||||||
upper,
|
|
||||||
includeUpper,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> sIdEqualTo(
|
|
||||||
int value) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'sId',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> sIdGreaterThan(
|
|
||||||
int value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
include: include,
|
|
||||||
property: r'sId',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> sIdLessThan(
|
|
||||||
int value, {
|
|
||||||
bool include = false,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
|
||||||
include: include,
|
|
||||||
property: r'sId',
|
|
||||||
value: value,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> sIdBetween(
|
|
||||||
int lower,
|
|
||||||
int upper, {
|
|
||||||
bool includeLower = true,
|
|
||||||
bool includeUpper = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.between(
|
|
||||||
property: r'sId',
|
|
||||||
lower: lower,
|
|
||||||
includeLower: includeLower,
|
|
||||||
upper: upper,
|
|
||||||
includeUpper: includeUpper,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signIsNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
|
||||||
property: r'sign',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
signIsNotNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
|
||||||
property: r'sign',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signEqualTo(
|
|
||||||
String? value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'sign',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signGreaterThan(
|
|
||||||
String? value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
include: include,
|
|
||||||
property: r'sign',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signLessThan(
|
|
||||||
String? value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
|
||||||
include: include,
|
|
||||||
property: r'sign',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signBetween(
|
|
||||||
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'sign',
|
|
||||||
lower: lower,
|
|
||||||
includeLower: includeLower,
|
|
||||||
upper: upper,
|
|
||||||
includeUpper: includeUpper,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signStartsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
|
||||||
property: r'sign',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signEndsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
|
||||||
property: r'sign',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signContains(
|
|
||||||
String value,
|
|
||||||
{bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
|
||||||
property: r'sign',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signMatches(
|
|
||||||
String pattern,
|
|
||||||
{bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
|
||||||
property: r'sign',
|
|
||||||
wildcard: pattern,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> signIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'sign',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
signIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
property: r'sign',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> timeEqualTo(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'time',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> timeGreaterThan(
|
|
||||||
String value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
include: include,
|
|
||||||
property: r'time',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> timeLessThan(
|
|
||||||
String value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
|
||||||
include: include,
|
|
||||||
property: r'time',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> timeBetween(
|
|
||||||
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'time',
|
|
||||||
lower: lower,
|
|
||||||
includeLower: includeLower,
|
|
||||||
upper: upper,
|
|
||||||
includeUpper: includeUpper,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, 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<FinTourTask, FinTourTask, QAfterFilterCondition> timeIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'time',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
timeIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
property: r'time',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valIsNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNull(
|
|
||||||
property: r'val',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valIsNotNull() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
|
||||||
property: r'val',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valEqualTo(
|
|
||||||
String? value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'val',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valGreaterThan(
|
|
||||||
String? value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
include: include,
|
|
||||||
property: r'val',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valLessThan(
|
|
||||||
String? value, {
|
|
||||||
bool include = false,
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.lessThan(
|
|
||||||
include: include,
|
|
||||||
property: r'val',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valBetween(
|
|
||||||
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'val',
|
|
||||||
lower: lower,
|
|
||||||
includeLower: includeLower,
|
|
||||||
upper: upper,
|
|
||||||
includeUpper: includeUpper,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valStartsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.startsWith(
|
|
||||||
property: r'val',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valEndsWith(
|
|
||||||
String value, {
|
|
||||||
bool caseSensitive = true,
|
|
||||||
}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.endsWith(
|
|
||||||
property: r'val',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valContains(
|
|
||||||
String value,
|
|
||||||
{bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.contains(
|
|
||||||
property: r'val',
|
|
||||||
value: value,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valMatches(
|
|
||||||
String pattern,
|
|
||||||
{bool caseSensitive = true}) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.matches(
|
|
||||||
property: r'val',
|
|
||||||
wildcard: pattern,
|
|
||||||
caseSensitive: caseSensitive,
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> valIsEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.equalTo(
|
|
||||||
property: r'val',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition>
|
|
||||||
valIsNotEmpty() {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
|
||||||
property: r'val',
|
|
||||||
value: '',
|
|
||||||
));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension FinTourTaskQueryObject
|
|
||||||
on QueryBuilder<FinTourTask, FinTourTask, QFilterCondition> {
|
|
||||||
QueryBuilder<FinTourTask, FinTourTask, QAfterFilterCondition> pos(
|
|
||||||
FilterQuery<FinTaskPos> q) {
|
|
||||||
return QueryBuilder.apply(this, (query) {
|
|
||||||
return query.object(q, r'pos');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
// JsonSerializableGenerator
|
// JsonSerializableGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|||||||
@@ -0,0 +1,120 @@
|
|||||||
|
import 'package:isar/isar.dart';
|
||||||
|
import 'package:json_annotation/json_annotation.dart';
|
||||||
|
|
||||||
|
part 'zip_message.g.dart';
|
||||||
|
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"recv": "rank",
|
||||||
|
"payload": {
|
||||||
|
"set_pos": {
|
||||||
|
"zip": "22525",
|
||||||
|
"track": {
|
||||||
|
"time": "2021-03-01T12:55:51Z",
|
||||||
|
"pos":
|
||||||
|
{
|
||||||
|
"lat": 53.595121,
|
||||||
|
"long": 9.907433,
|
||||||
|
"acc": 35
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"reg_zip": {
|
||||||
|
"id": 2,
|
||||||
|
"zip": "22039"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
@JsonSerializable()
|
||||||
|
class ZipMessage {
|
||||||
|
@JsonKey(name: "set_pos")
|
||||||
|
ZipSetPos? setPos;
|
||||||
|
|
||||||
|
@JsonKey(name: "req_zip")
|
||||||
|
ZipReqZip? reqZip;
|
||||||
|
|
||||||
|
ZipMessage();
|
||||||
|
|
||||||
|
factory ZipMessage.fromJson(Map<String, dynamic> json) => _$ZipMessageFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$ZipMessageToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@embedded
|
||||||
|
@JsonSerializable()
|
||||||
|
class ZipReqZip {
|
||||||
|
late int id;
|
||||||
|
|
||||||
|
late String zip;
|
||||||
|
|
||||||
|
ZipReqZip();
|
||||||
|
|
||||||
|
factory ZipReqZip.fromJson(Map<String, dynamic> json) => _$ZipReqZipFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$ZipReqZipToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@embedded
|
||||||
|
@JsonSerializable()
|
||||||
|
class ZipSetPos {
|
||||||
|
late String zip;
|
||||||
|
|
||||||
|
late ZipTrack track;
|
||||||
|
|
||||||
|
ZipSetPos();
|
||||||
|
|
||||||
|
factory ZipSetPos.fromJson(Map<String, dynamic> json) => _$ZipSetPosFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$ZipSetPosToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@embedded
|
||||||
|
@JsonSerializable()
|
||||||
|
class ZipTrack {
|
||||||
|
late String time;
|
||||||
|
|
||||||
|
late ZipTrackPos? pos;
|
||||||
|
|
||||||
|
ZipTrack();
|
||||||
|
|
||||||
|
factory ZipTrack.fromJson(Map<String, dynamic> json) => _$ZipTrackFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$ZipTrackToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@embedded
|
||||||
|
@JsonSerializable()
|
||||||
|
class ZipTrackPos {
|
||||||
|
late double lat;
|
||||||
|
|
||||||
|
late double long;
|
||||||
|
|
||||||
|
late int acc;
|
||||||
|
|
||||||
|
ZipTrackPos();
|
||||||
|
|
||||||
|
factory ZipTrackPos.fromJson(Map<String, dynamic> json) => _$ZipTrackPosFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$ZipTrackPosToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@JsonSerializable()
|
||||||
|
class MessageContent
|
||||||
|
{
|
||||||
|
late String text;
|
||||||
|
|
||||||
|
late String subj;
|
||||||
|
|
||||||
|
late String time;
|
||||||
|
|
||||||
|
MessageContent();
|
||||||
|
|
||||||
|
factory MessageContent.fromJson(Map<String, dynamic> json) => _$MessageContentFromJson(json);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => _$MessageContentToJson(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -7,7 +7,8 @@ class Constants {
|
|||||||
static const String messageTopicConnectionStatusChanged = "connection_status_changed";
|
static const String messageTopicConnectionStatusChanged = "connection_status_changed";
|
||||||
static const String messageTopicSessionInfoUpdate = "status_info_updated";
|
static const String messageTopicSessionInfoUpdate = "status_info_updated";
|
||||||
static const String messageTopicSessionStatusInfoUpdate = "session_status_info_updated";
|
static const String messageTopicSessionStatusInfoUpdate = "session_status_info_updated";
|
||||||
static const String messageTopicStatusInfoUpdate = "status_info_updated";
|
static const String messageTopicStatusInfoUpdated = "status_info_updated";
|
||||||
|
static const String messageTopicRankingUpdated = "ranking_updated";
|
||||||
static const String messageTopicJobReceived = "job_received";
|
static const String messageTopicJobReceived = "job_received";
|
||||||
static const String messageTopicJobDeleted = "job_deleted";
|
static const String messageTopicJobDeleted = "job_deleted";
|
||||||
static const String messageTopicMessageReceived = "message_received";
|
static const String messageTopicMessageReceived = "message_received";
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import 'package:stadtbote/model/status.dart';
|
||||||
|
|
||||||
|
class RankingUpdated {
|
||||||
|
RankingUpdated();
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import 'dart:math';
|
|||||||
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/status.dart';
|
import 'package:stadtbote/model/status.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
|
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
|
||||||
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
||||||
@@ -21,6 +22,7 @@ import 'package:stadtbote/tools/message_service.dart';
|
|||||||
import 'package:stadtbote/tools/messages/job_deleted_message.dart';
|
import 'package:stadtbote/tools/messages/job_deleted_message.dart';
|
||||||
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
||||||
import 'package:stadtbote/tools/messages/message_message.dart';
|
import 'package:stadtbote/tools/messages/message_message.dart';
|
||||||
|
import 'package:stadtbote/tools/messages/ranking_updated.dart';
|
||||||
import 'package:stadtbote/tools/messages/session_info_update.dart';
|
import 'package:stadtbote/tools/messages/session_info_update.dart';
|
||||||
import 'package:stadtbote/tools/messages/status_info_update.dart';
|
import 'package:stadtbote/tools/messages/status_info_update.dart';
|
||||||
// ignore: depend_on_referenced_packages
|
// ignore: depend_on_referenced_packages
|
||||||
@@ -249,19 +251,19 @@ class MqttCore {
|
|||||||
await MyApp.isarInstance.status.put(statusMessage);
|
await MyApp.isarInstance.status.put(statusMessage);
|
||||||
});
|
});
|
||||||
|
|
||||||
MessageService().publish<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, arguments: StatusInfoUpdate(status: statusMessage));
|
MessageService().publish<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdated, arguments: StatusInfoUpdate(status: statusMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _rankingMessageReceived(payloadData) async {
|
void _rankingMessageReceived(List<dynamic> payloadData) async {
|
||||||
Util.logInfo('_rankingMessageReceived');
|
Map<String, dynamic> rankingMap = {};
|
||||||
|
rankingMap["ranks"] = payloadData;
|
||||||
/*var statusMessage = Status.fromJson(payloadData['status']);
|
var ranking = Ranking.fromJson(rankingMap);
|
||||||
|
|
||||||
await MyApp.isarInstance.writeTxn(() async {
|
await MyApp.isarInstance.writeTxn(() async {
|
||||||
await MyApp.isarInstance.status.put(statusMessage);
|
await MyApp.isarInstance.rankings.put(ranking);
|
||||||
});
|
});
|
||||||
|
|
||||||
BroadcastReceiver().publish<StatusInfoUpdate>(Constants.messageTopicStatusInfoUpdate, arguments: StatusInfoUpdate(status: statusMessage));*/
|
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());
|
||||||
}
|
}
|
||||||
|
|
||||||
void _jobMessageReceived(payloadData) async {
|
void _jobMessageReceived(payloadData) async {
|
||||||
|
|||||||
+1
-1
@@ -299,7 +299,7 @@ String mapVehicleTypeToText(int vehType) {
|
|||||||
return "Service";
|
return "Service";
|
||||||
}
|
}
|
||||||
|
|
||||||
return "!UNBEKANTER VEHICLE TYPE!";
|
return "!?????!";
|
||||||
}
|
}
|
||||||
|
|
||||||
String mapTourMode(String mode) {
|
String mapTourMode(String mode) {
|
||||||
|
|||||||
Reference in new issue
Block a user