diff --git a/lib/content_views/assigned_jobs_page.dart b/lib/content_views/assigned_jobs_page.dart index a17c90f..bf2863c 100644 --- a/lib/content_views/assigned_jobs_page.dart +++ b/lib/content_views/assigned_jobs_page.dart @@ -7,10 +7,8 @@ import 'package:stadtbote/content_views/utils/content_view_widget.dart'; import 'package:stadtbote/content_views/utils/header_info.dart'; import 'package:intl/intl.dart'; import 'package:badges/badges.dart' as badges; -import 'package:stadtbote/model/accept_job_message.dart'; -import 'package:stadtbote/model/payload_container.dart'; +import 'package:stadtbote/protocoll_messages/accept_job_message.dart'; import 'package:stadtbote/tools/mqtt_core.dart'; -import 'package:uuid/uuid.dart'; import '../main.dart'; import '../model/job.dart'; diff --git a/lib/main.dart b/lib/main.dart index 4239174..2ae7fca 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -85,7 +85,7 @@ class _MainState extends State
{ bool _initCompleted = false; - final ValueNotifier _connectionLostValueNotifier = ValueNotifier(false); + final ValueNotifier _connectionLostValueNotifier = ValueNotifier(true); @override void initState() { diff --git a/lib/model/short_poll.dart b/lib/model/short_poll.dart deleted file mode 100644 index 992537c..0000000 --- a/lib/model/short_poll.dart +++ /dev/null @@ -1,104 +0,0 @@ -import 'package:isar/isar.dart'; -import 'package:stadtbote/model/short_poll_question.dart'; - -part 'short_poll.g.dart'; - -@collection -class ShortPoll { - late Id id; - - late int type; - - late String text; - - late String title; - - late int validFrom; - - late int validTo; - - late int? imageWidth; - - late int? imageHeight; - - late String? imageModified; - - late bool? commentsAllowed; - - late bool read = false; - - late String? url; - - late String? pdfName; - - late bool voted; - - late int numberOfVotes; - - late List questions; - - ShortPoll({ - required this.id, - required this.type, - required this.text, - required this.title, - required this.validFrom, - required this.validTo, - this.imageWidth, - this.imageHeight, - this.imageModified, - this.commentsAllowed, - required this.read, - this.url, - this.pdfName, - required this.voted, - required this.numberOfVotes, - required this.questions, - }); - - /*factory ShortPoll.fromJson(Map json) { - List questions = []; - - if (json["answers"] != null) { - questions = List.from( - json["answers"].map((x) => ShortPollQuestion.fromJson(x))); - } - - return ShortPoll( - id: json["id"], - type: json["type"], - text: json["text"], - title: json["title"], - validFrom: json["validFrom"], - validTo: json["validTo"], - imageWidth: json["imageWidth"], - imageHeight: json["imageHeight"], - imageModified: json["imageModified"], - commentsAllowed: json["commentsAllowed"], - read: json["read"], - url: json["url"], - pdfName: json["pdfName"], - voted: json["voted"], - numberOfVotes: json["numberOfVotes"], - questions: questions, - ); - } - - Map toJson() => { - "id": id, - "type": type, - "text": text, - "title": title, - "validFrom": validFrom, - "validTo": validTo, - "imageWidth": imageWidth, - "imageHeight": imageHeight, - "imageModified": imageModified, - "commentsAllowed": commentsAllowed, - "read": read, - "url": url, - "pdfName": pdfName, - "voted": voted, - "numberOfVotes": numberOfVotes, - };*/ -} \ No newline at end of file diff --git a/lib/model/short_poll.g.dart b/lib/model/short_poll.g.dart deleted file mode 100644 index 2ab3865..0000000 --- a/lib/model/short_poll.g.dart +++ /dev/null @@ -1,2162 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'short_poll.dart'; - -// ************************************************************************** -// IsarCollectionGenerator -// ************************************************************************** - -// coverage:ignore-file -// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types - -extension GetShortPollCollection on Isar { - IsarCollection get shortPolls => this.collection(); -} - -const ShortPollSchema = CollectionSchema( - name: r'ShortPoll', - id: -3233511297786412096, - properties: { - r'commentsAllowed': PropertySchema( - id: 0, - name: r'commentsAllowed', - type: IsarType.bool, - ), - r'imageHeight': PropertySchema( - id: 1, - name: r'imageHeight', - type: IsarType.long, - ), - r'imageModified': PropertySchema( - id: 2, - name: r'imageModified', - type: IsarType.string, - ), - r'imageWidth': PropertySchema( - id: 3, - name: r'imageWidth', - type: IsarType.long, - ), - r'numberOfVotes': PropertySchema( - id: 4, - name: r'numberOfVotes', - type: IsarType.long, - ), - r'pdfName': PropertySchema( - id: 5, - name: r'pdfName', - type: IsarType.string, - ), - r'questions': PropertySchema( - id: 6, - name: r'questions', - type: IsarType.objectList, - target: r'ShortPollQuestion', - ), - r'read': PropertySchema( - id: 7, - name: r'read', - type: IsarType.bool, - ), - r'text': PropertySchema( - id: 8, - name: r'text', - type: IsarType.string, - ), - r'title': PropertySchema( - id: 9, - name: r'title', - type: IsarType.string, - ), - r'type': PropertySchema( - id: 10, - name: r'type', - type: IsarType.long, - ), - r'url': PropertySchema( - id: 11, - name: r'url', - type: IsarType.string, - ), - r'validFrom': PropertySchema( - id: 12, - name: r'validFrom', - type: IsarType.long, - ), - r'validTo': PropertySchema( - id: 13, - name: r'validTo', - type: IsarType.long, - ), - r'voted': PropertySchema( - id: 14, - name: r'voted', - type: IsarType.bool, - ) - }, - estimateSize: _shortPollEstimateSize, - serialize: _shortPollSerialize, - deserialize: _shortPollDeserialize, - deserializeProp: _shortPollDeserializeProp, - idName: r'id', - indexes: {}, - links: {}, - embeddedSchemas: {r'ShortPollQuestion': ShortPollQuestionSchema}, - getId: _shortPollGetId, - getLinks: _shortPollGetLinks, - attach: _shortPollAttach, - version: '3.1.0+1', -); - -int _shortPollEstimateSize( - ShortPoll object, - List offsets, - Map> allOffsets, -) { - var bytesCount = offsets.last; - { - final value = object.imageModified; - if (value != null) { - bytesCount += 3 + value.length * 3; - } - } - { - final value = object.pdfName; - if (value != null) { - bytesCount += 3 + value.length * 3; - } - } - bytesCount += 3 + object.questions.length * 3; - { - final offsets = allOffsets[ShortPollQuestion]!; - for (var i = 0; i < object.questions.length; i++) { - final value = object.questions[i]; - bytesCount += - ShortPollQuestionSchema.estimateSize(value, offsets, allOffsets); - } - } - bytesCount += 3 + object.text.length * 3; - bytesCount += 3 + object.title.length * 3; - { - final value = object.url; - if (value != null) { - bytesCount += 3 + value.length * 3; - } - } - return bytesCount; -} - -void _shortPollSerialize( - ShortPoll object, - IsarWriter writer, - List offsets, - Map> allOffsets, -) { - writer.writeBool(offsets[0], object.commentsAllowed); - writer.writeLong(offsets[1], object.imageHeight); - writer.writeString(offsets[2], object.imageModified); - writer.writeLong(offsets[3], object.imageWidth); - writer.writeLong(offsets[4], object.numberOfVotes); - writer.writeString(offsets[5], object.pdfName); - writer.writeObjectList( - offsets[6], - allOffsets, - ShortPollQuestionSchema.serialize, - object.questions, - ); - writer.writeBool(offsets[7], object.read); - writer.writeString(offsets[8], object.text); - writer.writeString(offsets[9], object.title); - writer.writeLong(offsets[10], object.type); - writer.writeString(offsets[11], object.url); - writer.writeLong(offsets[12], object.validFrom); - writer.writeLong(offsets[13], object.validTo); - writer.writeBool(offsets[14], object.voted); -} - -ShortPoll _shortPollDeserialize( - Id id, - IsarReader reader, - List offsets, - Map> allOffsets, -) { - final object = ShortPoll( - commentsAllowed: reader.readBoolOrNull(offsets[0]), - id: id, - imageHeight: reader.readLongOrNull(offsets[1]), - imageModified: reader.readStringOrNull(offsets[2]), - imageWidth: reader.readLongOrNull(offsets[3]), - numberOfVotes: reader.readLong(offsets[4]), - pdfName: reader.readStringOrNull(offsets[5]), - questions: reader.readObjectList( - offsets[6], - ShortPollQuestionSchema.deserialize, - allOffsets, - ShortPollQuestion(), - ) ?? - [], - read: reader.readBool(offsets[7]), - text: reader.readString(offsets[8]), - title: reader.readString(offsets[9]), - type: reader.readLong(offsets[10]), - url: reader.readStringOrNull(offsets[11]), - validFrom: reader.readLong(offsets[12]), - validTo: reader.readLong(offsets[13]), - voted: reader.readBool(offsets[14]), - ); - return object; -} - -P _shortPollDeserializeProp

( - IsarReader reader, - int propertyId, - int offset, - Map> allOffsets, -) { - switch (propertyId) { - case 0: - return (reader.readBoolOrNull(offset)) as P; - case 1: - return (reader.readLongOrNull(offset)) as P; - case 2: - return (reader.readStringOrNull(offset)) as P; - case 3: - return (reader.readLongOrNull(offset)) as P; - case 4: - return (reader.readLong(offset)) as P; - case 5: - return (reader.readStringOrNull(offset)) as P; - case 6: - return (reader.readObjectList( - offset, - ShortPollQuestionSchema.deserialize, - allOffsets, - ShortPollQuestion(), - ) ?? - []) as P; - case 7: - return (reader.readBool(offset)) as P; - case 8: - return (reader.readString(offset)) as P; - case 9: - return (reader.readString(offset)) as P; - case 10: - return (reader.readLong(offset)) as P; - case 11: - return (reader.readStringOrNull(offset)) as P; - case 12: - return (reader.readLong(offset)) as P; - case 13: - return (reader.readLong(offset)) as P; - case 14: - return (reader.readBool(offset)) as P; - default: - throw IsarError('Unknown property with id $propertyId'); - } -} - -Id _shortPollGetId(ShortPoll object) { - return object.id; -} - -List> _shortPollGetLinks(ShortPoll object) { - return []; -} - -void _shortPollAttach(IsarCollection col, Id id, ShortPoll object) { - object.id = id; -} - -extension ShortPollQueryWhereSort - on QueryBuilder { - QueryBuilder anyId() { - return QueryBuilder.apply(this, (query) { - return query.addWhereClause(const IdWhereClause.any()); - }); - } -} - -extension ShortPollQueryWhere - on QueryBuilder { - QueryBuilder idEqualTo(Id id) { - return QueryBuilder.apply(this, (query) { - return query.addWhereClause(IdWhereClause.between( - lower: id, - upper: id, - )); - }); - } - - QueryBuilder idNotEqualTo(Id id) { - return QueryBuilder.apply(this, (query) { - if (query.whereSort == Sort.asc) { - return query - .addWhereClause( - IdWhereClause.lessThan(upper: id, includeUpper: false), - ) - .addWhereClause( - IdWhereClause.greaterThan(lower: id, includeLower: false), - ); - } else { - return query - .addWhereClause( - IdWhereClause.greaterThan(lower: id, includeLower: false), - ) - .addWhereClause( - IdWhereClause.lessThan(upper: id, includeUpper: false), - ); - } - }); - } - - QueryBuilder idGreaterThan(Id id, - {bool include = false}) { - return QueryBuilder.apply(this, (query) { - return query.addWhereClause( - IdWhereClause.greaterThan(lower: id, includeLower: include), - ); - }); - } - - QueryBuilder idLessThan(Id id, - {bool include = false}) { - return QueryBuilder.apply(this, (query) { - return query.addWhereClause( - IdWhereClause.lessThan(upper: id, includeUpper: include), - ); - }); - } - - QueryBuilder idBetween( - Id lowerId, - Id upperId, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addWhereClause(IdWhereClause.between( - lower: lowerId, - includeLower: includeLower, - upper: upperId, - includeUpper: includeUpper, - )); - }); - } -} - -extension ShortPollQueryFilter - on QueryBuilder { - QueryBuilder - commentsAllowedIsNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNull( - property: r'commentsAllowed', - )); - }); - } - - QueryBuilder - commentsAllowedIsNotNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNotNull( - property: r'commentsAllowed', - )); - }); - } - - QueryBuilder - commentsAllowedEqualTo(bool? value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'commentsAllowed', - value: value, - )); - }); - } - - QueryBuilder idEqualTo( - Id value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'id', - value: value, - )); - }); - } - - QueryBuilder idGreaterThan( - Id value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'id', - value: value, - )); - }); - } - - QueryBuilder idLessThan( - Id value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'id', - value: value, - )); - }); - } - - QueryBuilder 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 - imageHeightIsNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNull( - property: r'imageHeight', - )); - }); - } - - QueryBuilder - imageHeightIsNotNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNotNull( - property: r'imageHeight', - )); - }); - } - - QueryBuilder imageHeightEqualTo( - int? value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'imageHeight', - value: value, - )); - }); - } - - QueryBuilder - imageHeightGreaterThan( - int? value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'imageHeight', - value: value, - )); - }); - } - - QueryBuilder imageHeightLessThan( - int? value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'imageHeight', - value: value, - )); - }); - } - - QueryBuilder imageHeightBetween( - int? lower, - int? upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'imageHeight', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder - imageModifiedIsNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNull( - property: r'imageModified', - )); - }); - } - - QueryBuilder - imageModifiedIsNotNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNotNull( - property: r'imageModified', - )); - }); - } - - QueryBuilder - imageModifiedEqualTo( - String? value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'imageModified', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedGreaterThan( - String? value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'imageModified', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedLessThan( - String? value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'imageModified', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedBetween( - 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'imageModified', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedStartsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.startsWith( - property: r'imageModified', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedEndsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.endsWith( - property: r'imageModified', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedContains(String value, {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.contains( - property: r'imageModified', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedMatches(String pattern, {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.matches( - property: r'imageModified', - wildcard: pattern, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - imageModifiedIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'imageModified', - value: '', - )); - }); - } - - QueryBuilder - imageModifiedIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - property: r'imageModified', - value: '', - )); - }); - } - - QueryBuilder imageWidthIsNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNull( - property: r'imageWidth', - )); - }); - } - - QueryBuilder - imageWidthIsNotNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNotNull( - property: r'imageWidth', - )); - }); - } - - QueryBuilder imageWidthEqualTo( - int? value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'imageWidth', - value: value, - )); - }); - } - - QueryBuilder - imageWidthGreaterThan( - int? value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'imageWidth', - value: value, - )); - }); - } - - QueryBuilder imageWidthLessThan( - int? value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'imageWidth', - value: value, - )); - }); - } - - QueryBuilder imageWidthBetween( - int? lower, - int? upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'imageWidth', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder - numberOfVotesEqualTo(int value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'numberOfVotes', - value: value, - )); - }); - } - - QueryBuilder - numberOfVotesGreaterThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'numberOfVotes', - value: value, - )); - }); - } - - QueryBuilder - numberOfVotesLessThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'numberOfVotes', - value: value, - )); - }); - } - - QueryBuilder - numberOfVotesBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'numberOfVotes', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder pdfNameIsNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNull( - property: r'pdfName', - )); - }); - } - - QueryBuilder pdfNameIsNotNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNotNull( - property: r'pdfName', - )); - }); - } - - QueryBuilder pdfNameEqualTo( - String? value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'pdfName', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameGreaterThan( - String? value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'pdfName', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameLessThan( - String? value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'pdfName', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameBetween( - 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'pdfName', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameStartsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.startsWith( - property: r'pdfName', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameEndsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.endsWith( - property: r'pdfName', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameContains( - String value, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.contains( - property: r'pdfName', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameMatches( - String pattern, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.matches( - property: r'pdfName', - wildcard: pattern, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder pdfNameIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'pdfName', - value: '', - )); - }); - } - - QueryBuilder - pdfNameIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - property: r'pdfName', - value: '', - )); - }); - } - - QueryBuilder - questionsLengthEqualTo(int length) { - return QueryBuilder.apply(this, (query) { - return query.listLength( - r'questions', - length, - true, - length, - true, - ); - }); - } - - QueryBuilder questionsIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.listLength( - r'questions', - 0, - true, - 0, - true, - ); - }); - } - - QueryBuilder - questionsIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.listLength( - r'questions', - 0, - false, - 999999, - true, - ); - }); - } - - QueryBuilder - questionsLengthLessThan( - int length, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.listLength( - r'questions', - 0, - true, - length, - include, - ); - }); - } - - QueryBuilder - questionsLengthGreaterThan( - int length, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.listLength( - r'questions', - length, - include, - 999999, - true, - ); - }); - } - - QueryBuilder - questionsLengthBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.listLength( - r'questions', - lower, - includeLower, - upper, - includeUpper, - ); - }); - } - - QueryBuilder readEqualTo( - bool value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'read', - value: value, - )); - }); - } - - QueryBuilder textEqualTo( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textGreaterThan( - String value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textLessThan( - String value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textBetween( - String lower, - String upper, { - bool includeLower = true, - bool includeUpper = true, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'text', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textStartsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.startsWith( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textEndsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.endsWith( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textContains( - String value, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.contains( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textMatches( - String pattern, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.matches( - property: r'text', - wildcard: pattern, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder textIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'text', - value: '', - )); - }); - } - - QueryBuilder textIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - property: r'text', - value: '', - )); - }); - } - - QueryBuilder titleEqualTo( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'title', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleGreaterThan( - String value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'title', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleLessThan( - String value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'title', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleBetween( - 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'title', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleStartsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.startsWith( - property: r'title', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleEndsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.endsWith( - property: r'title', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleContains( - String value, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.contains( - property: r'title', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleMatches( - String pattern, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.matches( - property: r'title', - wildcard: pattern, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder titleIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'title', - value: '', - )); - }); - } - - QueryBuilder titleIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - property: r'title', - value: '', - )); - }); - } - - QueryBuilder typeEqualTo( - int value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'type', - value: value, - )); - }); - } - - QueryBuilder typeGreaterThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'type', - value: value, - )); - }); - } - - QueryBuilder typeLessThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'type', - value: value, - )); - }); - } - - QueryBuilder typeBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'type', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder urlIsNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNull( - property: r'url', - )); - }); - } - - QueryBuilder urlIsNotNull() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(const FilterCondition.isNotNull( - property: r'url', - )); - }); - } - - QueryBuilder urlEqualTo( - String? value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'url', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlGreaterThan( - String? value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'url', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlLessThan( - String? value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'url', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlBetween( - 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'url', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlStartsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.startsWith( - property: r'url', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlEndsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.endsWith( - property: r'url', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlContains( - String value, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.contains( - property: r'url', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlMatches( - String pattern, - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.matches( - property: r'url', - wildcard: pattern, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder urlIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'url', - value: '', - )); - }); - } - - QueryBuilder urlIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - property: r'url', - value: '', - )); - }); - } - - QueryBuilder validFromEqualTo( - int value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'validFrom', - value: value, - )); - }); - } - - QueryBuilder - validFromGreaterThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'validFrom', - value: value, - )); - }); - } - - QueryBuilder validFromLessThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'validFrom', - value: value, - )); - }); - } - - QueryBuilder validFromBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'validFrom', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder validToEqualTo( - int value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'validTo', - value: value, - )); - }); - } - - QueryBuilder validToGreaterThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'validTo', - value: value, - )); - }); - } - - QueryBuilder validToLessThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'validTo', - value: value, - )); - }); - } - - QueryBuilder validToBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'validTo', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder votedEqualTo( - bool value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'voted', - value: value, - )); - }); - } -} - -extension ShortPollQueryObject - on QueryBuilder { - QueryBuilder questionsElement( - FilterQuery q) { - return QueryBuilder.apply(this, (query) { - return query.object(q, r'questions'); - }); - } -} - -extension ShortPollQueryLinks - on QueryBuilder {} - -extension ShortPollQuerySortBy on QueryBuilder { - QueryBuilder sortByCommentsAllowed() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'commentsAllowed', Sort.asc); - }); - } - - QueryBuilder sortByCommentsAllowedDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'commentsAllowed', Sort.desc); - }); - } - - QueryBuilder sortByImageHeight() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageHeight', Sort.asc); - }); - } - - QueryBuilder sortByImageHeightDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageHeight', Sort.desc); - }); - } - - QueryBuilder sortByImageModified() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageModified', Sort.asc); - }); - } - - QueryBuilder sortByImageModifiedDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageModified', Sort.desc); - }); - } - - QueryBuilder sortByImageWidth() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageWidth', Sort.asc); - }); - } - - QueryBuilder sortByImageWidthDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageWidth', Sort.desc); - }); - } - - QueryBuilder sortByNumberOfVotes() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'numberOfVotes', Sort.asc); - }); - } - - QueryBuilder sortByNumberOfVotesDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'numberOfVotes', Sort.desc); - }); - } - - QueryBuilder sortByPdfName() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'pdfName', Sort.asc); - }); - } - - QueryBuilder sortByPdfNameDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'pdfName', Sort.desc); - }); - } - - QueryBuilder sortByRead() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'read', Sort.asc); - }); - } - - QueryBuilder sortByReadDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'read', Sort.desc); - }); - } - - QueryBuilder sortByText() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'text', Sort.asc); - }); - } - - QueryBuilder sortByTextDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'text', Sort.desc); - }); - } - - QueryBuilder sortByTitle() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'title', Sort.asc); - }); - } - - QueryBuilder sortByTitleDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'title', Sort.desc); - }); - } - - QueryBuilder sortByType() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'type', Sort.asc); - }); - } - - QueryBuilder sortByTypeDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'type', Sort.desc); - }); - } - - QueryBuilder sortByUrl() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'url', Sort.asc); - }); - } - - QueryBuilder sortByUrlDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'url', Sort.desc); - }); - } - - QueryBuilder sortByValidFrom() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validFrom', Sort.asc); - }); - } - - QueryBuilder sortByValidFromDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validFrom', Sort.desc); - }); - } - - QueryBuilder sortByValidTo() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validTo', Sort.asc); - }); - } - - QueryBuilder sortByValidToDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validTo', Sort.desc); - }); - } - - QueryBuilder sortByVoted() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'voted', Sort.asc); - }); - } - - QueryBuilder sortByVotedDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'voted', Sort.desc); - }); - } -} - -extension ShortPollQuerySortThenBy - on QueryBuilder { - QueryBuilder thenByCommentsAllowed() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'commentsAllowed', Sort.asc); - }); - } - - QueryBuilder thenByCommentsAllowedDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'commentsAllowed', Sort.desc); - }); - } - - QueryBuilder thenById() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'id', Sort.asc); - }); - } - - QueryBuilder thenByIdDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'id', Sort.desc); - }); - } - - QueryBuilder thenByImageHeight() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageHeight', Sort.asc); - }); - } - - QueryBuilder thenByImageHeightDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageHeight', Sort.desc); - }); - } - - QueryBuilder thenByImageModified() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageModified', Sort.asc); - }); - } - - QueryBuilder thenByImageModifiedDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageModified', Sort.desc); - }); - } - - QueryBuilder thenByImageWidth() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageWidth', Sort.asc); - }); - } - - QueryBuilder thenByImageWidthDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'imageWidth', Sort.desc); - }); - } - - QueryBuilder thenByNumberOfVotes() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'numberOfVotes', Sort.asc); - }); - } - - QueryBuilder thenByNumberOfVotesDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'numberOfVotes', Sort.desc); - }); - } - - QueryBuilder thenByPdfName() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'pdfName', Sort.asc); - }); - } - - QueryBuilder thenByPdfNameDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'pdfName', Sort.desc); - }); - } - - QueryBuilder thenByRead() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'read', Sort.asc); - }); - } - - QueryBuilder thenByReadDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'read', Sort.desc); - }); - } - - QueryBuilder thenByText() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'text', Sort.asc); - }); - } - - QueryBuilder thenByTextDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'text', Sort.desc); - }); - } - - QueryBuilder thenByTitle() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'title', Sort.asc); - }); - } - - QueryBuilder thenByTitleDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'title', Sort.desc); - }); - } - - QueryBuilder thenByType() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'type', Sort.asc); - }); - } - - QueryBuilder thenByTypeDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'type', Sort.desc); - }); - } - - QueryBuilder thenByUrl() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'url', Sort.asc); - }); - } - - QueryBuilder thenByUrlDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'url', Sort.desc); - }); - } - - QueryBuilder thenByValidFrom() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validFrom', Sort.asc); - }); - } - - QueryBuilder thenByValidFromDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validFrom', Sort.desc); - }); - } - - QueryBuilder thenByValidTo() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validTo', Sort.asc); - }); - } - - QueryBuilder thenByValidToDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'validTo', Sort.desc); - }); - } - - QueryBuilder thenByVoted() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'voted', Sort.asc); - }); - } - - QueryBuilder thenByVotedDesc() { - return QueryBuilder.apply(this, (query) { - return query.addSortBy(r'voted', Sort.desc); - }); - } -} - -extension ShortPollQueryWhereDistinct - on QueryBuilder { - QueryBuilder distinctByCommentsAllowed() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'commentsAllowed'); - }); - } - - QueryBuilder distinctByImageHeight() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'imageHeight'); - }); - } - - QueryBuilder distinctByImageModified( - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'imageModified', - caseSensitive: caseSensitive); - }); - } - - QueryBuilder distinctByImageWidth() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'imageWidth'); - }); - } - - QueryBuilder distinctByNumberOfVotes() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'numberOfVotes'); - }); - } - - QueryBuilder distinctByPdfName( - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'pdfName', caseSensitive: caseSensitive); - }); - } - - QueryBuilder distinctByRead() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'read'); - }); - } - - QueryBuilder distinctByText( - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'text', caseSensitive: caseSensitive); - }); - } - - QueryBuilder distinctByTitle( - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'title', caseSensitive: caseSensitive); - }); - } - - QueryBuilder distinctByType() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'type'); - }); - } - - QueryBuilder distinctByUrl( - {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'url', caseSensitive: caseSensitive); - }); - } - - QueryBuilder distinctByValidFrom() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'validFrom'); - }); - } - - QueryBuilder distinctByValidTo() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'validTo'); - }); - } - - QueryBuilder distinctByVoted() { - return QueryBuilder.apply(this, (query) { - return query.addDistinctBy(r'voted'); - }); - } -} - -extension ShortPollQueryProperty - on QueryBuilder { - QueryBuilder idProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'id'); - }); - } - - QueryBuilder commentsAllowedProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'commentsAllowed'); - }); - } - - QueryBuilder imageHeightProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'imageHeight'); - }); - } - - QueryBuilder imageModifiedProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'imageModified'); - }); - } - - QueryBuilder imageWidthProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'imageWidth'); - }); - } - - QueryBuilder numberOfVotesProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'numberOfVotes'); - }); - } - - QueryBuilder pdfNameProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'pdfName'); - }); - } - - QueryBuilder, QQueryOperations> - questionsProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'questions'); - }); - } - - QueryBuilder readProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'read'); - }); - } - - QueryBuilder textProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'text'); - }); - } - - QueryBuilder titleProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'title'); - }); - } - - QueryBuilder typeProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'type'); - }); - } - - QueryBuilder urlProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'url'); - }); - } - - QueryBuilder validFromProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'validFrom'); - }); - } - - QueryBuilder validToProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'validTo'); - }); - } - - QueryBuilder votedProperty() { - return QueryBuilder.apply(this, (query) { - return query.addPropertyName(r'voted'); - }); - } -} diff --git a/lib/model/short_poll_question.dart b/lib/model/short_poll_question.dart deleted file mode 100644 index 20d9b92..0000000 --- a/lib/model/short_poll_question.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:isar/isar.dart'; - -part 'short_poll_question.g.dart'; - -@embedded -class ShortPollQuestion { - late int questionId; - - late int shortPollId; - - late String text; - - /*@Ignore() - late String imageName = "assets/radiobutton.png"; - - @Ignore() - late bool selected = false;*/ - - ShortPollQuestion(); - - /*factory ShortPollQuestion.fromJson(Map json) { - var shortPollQuestion = ShortPollQuestion(); - shortPollQuestion.questionId = json['id']; - shortPollQuestion.shortPollId = json["shortPollId"]; - shortPollQuestion.text = json["text"]; - - return shortPollQuestion; - } - - Map toJson() => { - "id": questionId, - "short_poll_id": shortPollId, - "text": text, - };*/ -} \ No newline at end of file diff --git a/lib/model/short_poll_question.g.dart b/lib/model/short_poll_question.g.dart deleted file mode 100644 index c6b48f2..0000000 --- a/lib/model/short_poll_question.g.dart +++ /dev/null @@ -1,342 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'short_poll_question.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 ShortPollQuestionSchema = Schema( - name: r'ShortPollQuestion', - id: 899576032619711410, - properties: { - r'questionId': PropertySchema( - id: 0, - name: r'questionId', - type: IsarType.long, - ), - r'shortPollId': PropertySchema( - id: 1, - name: r'shortPollId', - type: IsarType.long, - ), - r'text': PropertySchema( - id: 2, - name: r'text', - type: IsarType.string, - ) - }, - estimateSize: _shortPollQuestionEstimateSize, - serialize: _shortPollQuestionSerialize, - deserialize: _shortPollQuestionDeserialize, - deserializeProp: _shortPollQuestionDeserializeProp, -); - -int _shortPollQuestionEstimateSize( - ShortPollQuestion object, - List offsets, - Map> allOffsets, -) { - var bytesCount = offsets.last; - bytesCount += 3 + object.text.length * 3; - return bytesCount; -} - -void _shortPollQuestionSerialize( - ShortPollQuestion object, - IsarWriter writer, - List offsets, - Map> allOffsets, -) { - writer.writeLong(offsets[0], object.questionId); - writer.writeLong(offsets[1], object.shortPollId); - writer.writeString(offsets[2], object.text); -} - -ShortPollQuestion _shortPollQuestionDeserialize( - Id id, - IsarReader reader, - List offsets, - Map> allOffsets, -) { - final object = ShortPollQuestion(); - object.questionId = reader.readLong(offsets[0]); - object.shortPollId = reader.readLong(offsets[1]); - object.text = reader.readString(offsets[2]); - return object; -} - -P _shortPollQuestionDeserializeProp

( - IsarReader reader, - int propertyId, - int offset, - Map> allOffsets, -) { - switch (propertyId) { - case 0: - return (reader.readLong(offset)) as P; - case 1: - return (reader.readLong(offset)) as P; - case 2: - return (reader.readString(offset)) as P; - default: - throw IsarError('Unknown property with id $propertyId'); - } -} - -extension ShortPollQuestionQueryFilter - on QueryBuilder { - QueryBuilder - questionIdEqualTo(int value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'questionId', - value: value, - )); - }); - } - - QueryBuilder - questionIdGreaterThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'questionId', - value: value, - )); - }); - } - - QueryBuilder - questionIdLessThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'questionId', - value: value, - )); - }); - } - - QueryBuilder - questionIdBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'questionId', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder - shortPollIdEqualTo(int value) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'shortPollId', - value: value, - )); - }); - } - - QueryBuilder - shortPollIdGreaterThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'shortPollId', - value: value, - )); - }); - } - - QueryBuilder - shortPollIdLessThan( - int value, { - bool include = false, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'shortPollId', - value: value, - )); - }); - } - - QueryBuilder - shortPollIdBetween( - int lower, - int upper, { - bool includeLower = true, - bool includeUpper = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'shortPollId', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - )); - }); - } - - QueryBuilder - textEqualTo( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textGreaterThan( - String value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - include: include, - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textLessThan( - String value, { - bool include = false, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.lessThan( - include: include, - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textBetween( - String lower, - String upper, { - bool includeLower = true, - bool includeUpper = true, - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.between( - property: r'text', - lower: lower, - includeLower: includeLower, - upper: upper, - includeUpper: includeUpper, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textStartsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.startsWith( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textEndsWith( - String value, { - bool caseSensitive = true, - }) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.endsWith( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textContains(String value, {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.contains( - property: r'text', - value: value, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textMatches(String pattern, {bool caseSensitive = true}) { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.matches( - property: r'text', - wildcard: pattern, - caseSensitive: caseSensitive, - )); - }); - } - - QueryBuilder - textIsEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.equalTo( - property: r'text', - value: '', - )); - }); - } - - QueryBuilder - textIsNotEmpty() { - return QueryBuilder.apply(this, (query) { - return query.addFilterCondition(FilterCondition.greaterThan( - property: r'text', - value: '', - )); - }); - } -} - -extension ShortPollQuestionQueryObject - on QueryBuilder {} diff --git a/lib/popups/accept_jobs_popup.dart b/lib/popups/accept_jobs_popup.dart index bfca841..ae87293 100644 --- a/lib/popups/accept_jobs_popup.dart +++ b/lib/popups/accept_jobs_popup.dart @@ -4,7 +4,7 @@ import 'package:intl/intl.dart'; import 'package:isar/isar.dart'; import 'package:kumi_popup_window/kumi_popup_window.dart'; import 'package:stadtbote/main.dart'; -import 'package:stadtbote/model/accept_job_message.dart'; +import 'package:stadtbote/protocoll_messages/accept_job_message.dart'; import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/tools/constants.dart'; import 'package:stadtbote/tools/mqtt_core.dart'; diff --git a/lib/model/accept_job_message.dart b/lib/protocoll_messages/accept_job_message.dart similarity index 100% rename from lib/model/accept_job_message.dart rename to lib/protocoll_messages/accept_job_message.dart diff --git a/lib/model/accept_job_message.g.dart b/lib/protocoll_messages/accept_job_message.g.dart similarity index 100% rename from lib/model/accept_job_message.g.dart rename to lib/protocoll_messages/accept_job_message.g.dart diff --git a/lib/model/bootstrap_request.dart b/lib/protocoll_messages/bootstrap_request.dart similarity index 87% rename from lib/model/bootstrap_request.dart rename to lib/protocoll_messages/bootstrap_request.dart index 029d307..770ab0b 100644 --- a/lib/model/bootstrap_request.dart +++ b/lib/protocoll_messages/bootstrap_request.dart @@ -1,5 +1,5 @@ import 'package:json_annotation/json_annotation.dart'; -import 'package:stadtbote/model/device_object.dart'; +import 'package:stadtbote/protocoll_messages/device_object.dart'; part 'bootstrap_request.g.dart'; diff --git a/lib/model/bootstrap_request.g.dart b/lib/protocoll_messages/bootstrap_request.g.dart similarity index 100% rename from lib/model/bootstrap_request.g.dart rename to lib/protocoll_messages/bootstrap_request.g.dart diff --git a/lib/model/bootstrap_response_config.dart b/lib/protocoll_messages/bootstrap_response_config.dart similarity index 84% rename from lib/model/bootstrap_response_config.dart rename to lib/protocoll_messages/bootstrap_response_config.dart index 60f758a..68e6e35 100644 --- a/lib/model/bootstrap_response_config.dart +++ b/lib/protocoll_messages/bootstrap_response_config.dart @@ -1,5 +1,5 @@ import 'package:json_annotation/json_annotation.dart'; -import 'package:stadtbote/model/bootstrap_response_topics.dart'; +import 'package:stadtbote/protocoll_messages/bootstrap_response_topics.dart'; part 'bootstrap_response_config.g.dart'; diff --git a/lib/model/bootstrap_response_config.g.dart b/lib/protocoll_messages/bootstrap_response_config.g.dart similarity index 100% rename from lib/model/bootstrap_response_config.g.dart rename to lib/protocoll_messages/bootstrap_response_config.g.dart diff --git a/lib/model/bootstrap_response_payload.dart b/lib/protocoll_messages/bootstrap_response_payload.dart similarity index 84% rename from lib/model/bootstrap_response_payload.dart rename to lib/protocoll_messages/bootstrap_response_payload.dart index b8b0dcc..a914af4 100644 --- a/lib/model/bootstrap_response_payload.dart +++ b/lib/protocoll_messages/bootstrap_response_payload.dart @@ -1,5 +1,5 @@ import 'package:json_annotation/json_annotation.dart'; -import 'package:stadtbote/model/bootstrap_response_config.dart'; +import 'package:stadtbote/protocoll_messages/bootstrap_response_config.dart'; part 'bootstrap_response_payload.g.dart'; diff --git a/lib/model/bootstrap_response_payload.g.dart b/lib/protocoll_messages/bootstrap_response_payload.g.dart similarity index 100% rename from lib/model/bootstrap_response_payload.g.dart rename to lib/protocoll_messages/bootstrap_response_payload.g.dart diff --git a/lib/model/bootstrap_response_topics.dart b/lib/protocoll_messages/bootstrap_response_topics.dart similarity index 100% rename from lib/model/bootstrap_response_topics.dart rename to lib/protocoll_messages/bootstrap_response_topics.dart diff --git a/lib/model/bootstrap_response_topics.g.dart b/lib/protocoll_messages/bootstrap_response_topics.g.dart similarity index 100% rename from lib/model/bootstrap_response_topics.g.dart rename to lib/protocoll_messages/bootstrap_response_topics.g.dart diff --git a/lib/model/device_object.dart b/lib/protocoll_messages/device_object.dart similarity index 100% rename from lib/model/device_object.dart rename to lib/protocoll_messages/device_object.dart diff --git a/lib/model/device_object.g.dart b/lib/protocoll_messages/device_object.g.dart similarity index 100% rename from lib/model/device_object.g.dart rename to lib/protocoll_messages/device_object.g.dart diff --git a/lib/protocoll_messages/job_del_message.dart b/lib/protocoll_messages/job_del_message.dart new file mode 100644 index 0000000..633508a --- /dev/null +++ b/lib/protocoll_messages/job_del_message.dart @@ -0,0 +1,16 @@ +import 'package:isar/isar.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:stadtbote/tools/util.dart'; + +part 'job_del_message.g.dart'; + +@JsonSerializable() +class JobDelMessage { + late List jobDel; + + JobDelMessage(); + + factory JobDelMessage.fromJson(Map json) => _$JobDelMessageFromJson(json); + + Map toJson() => _$JobDelMessageToJson(this); +} diff --git a/lib/protocoll_messages/job_del_message.g.dart b/lib/protocoll_messages/job_del_message.g.dart new file mode 100644 index 0000000..93b15a3 --- /dev/null +++ b/lib/protocoll_messages/job_del_message.g.dart @@ -0,0 +1,17 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'job_del_message.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +JobDelMessage _$JobDelMessageFromJson(Map json) => + JobDelMessage() + ..jobDel = + (json['jobDel'] as List).map((e) => e as int).toList(); + +Map _$JobDelMessageToJson(JobDelMessage instance) => + { + 'jobDel': instance.jobDel, + }; diff --git a/lib/model/payload_container.dart b/lib/protocoll_messages/payload_container.dart similarity index 100% rename from lib/model/payload_container.dart rename to lib/protocoll_messages/payload_container.dart diff --git a/lib/model/payload_container.g.dart b/lib/protocoll_messages/payload_container.g.dart similarity index 100% rename from lib/model/payload_container.g.dart rename to lib/protocoll_messages/payload_container.g.dart diff --git a/lib/model/start_session_message.dart b/lib/protocoll_messages/start_session_message.dart similarity index 100% rename from lib/model/start_session_message.dart rename to lib/protocoll_messages/start_session_message.dart diff --git a/lib/model/start_session_message.g.dart b/lib/protocoll_messages/start_session_message.g.dart similarity index 100% rename from lib/model/start_session_message.g.dart rename to lib/protocoll_messages/start_session_message.g.dart diff --git a/lib/protocoll_messages/sync_jobs_message.dart b/lib/protocoll_messages/sync_jobs_message.dart new file mode 100644 index 0000000..149bdea --- /dev/null +++ b/lib/protocoll_messages/sync_jobs_message.dart @@ -0,0 +1,45 @@ +import 'package:isar/isar.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:stadtbote/tools/util.dart'; + +part 'sync_jobs_message.g.dart'; + +@JsonSerializable() +class SyncJobsMessage { + late SyncJobMessageSync sync; + + SyncJobsMessage(); + + factory SyncJobsMessage.fromJson(Map json) => _$SyncJobsMessageFromJson(json); + + Map toJson() => _$SyncJobsMessageToJson(this); +} + +@JsonSerializable() +class SyncJobMessageSync { + late int utcUnixTime; + + late List jobs; + + SyncJobMessageSync(); + + factory SyncJobMessageSync.fromJson(Map json) => _$SyncJobMessageSyncFromJson(json); + + Map toJson() => _$SyncJobMessageSyncToJson(this); +} + +@JsonSerializable() +class SyncJobMessageJob { + late int id; + + late int ver; + + late int state; + + SyncJobMessageJob(); + + factory SyncJobMessageJob.fromJson(Map json) => _$SyncJobMessageJobFromJson(json); + + Map toJson() => _$SyncJobMessageJobToJson(this); +} + diff --git a/lib/protocoll_messages/sync_jobs_message.g.dart b/lib/protocoll_messages/sync_jobs_message.g.dart new file mode 100644 index 0000000..a47fec7 --- /dev/null +++ b/lib/protocoll_messages/sync_jobs_message.g.dart @@ -0,0 +1,43 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'sync_jobs_message.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +SyncJobsMessage _$SyncJobsMessageFromJson(Map json) => + SyncJobsMessage() + ..sync = + SyncJobMessageSync.fromJson(json['sync'] as Map); + +Map _$SyncJobsMessageToJson(SyncJobsMessage instance) => + { + 'sync': instance.sync, + }; + +SyncJobMessageSync _$SyncJobMessageSyncFromJson(Map json) => + SyncJobMessageSync() + ..utcUnixTime = json['utcUnixTime'] as int + ..jobs = (json['jobs'] as List) + .map((e) => SyncJobMessageJob.fromJson(e as Map)) + .toList(); + +Map _$SyncJobMessageSyncToJson(SyncJobMessageSync instance) => + { + 'utcUnixTime': instance.utcUnixTime, + 'jobs': instance.jobs, + }; + +SyncJobMessageJob _$SyncJobMessageJobFromJson(Map json) => + SyncJobMessageJob() + ..id = json['id'] as int + ..ver = json['ver'] as int + ..state = json['state'] as int; + +Map _$SyncJobMessageJobToJson(SyncJobMessageJob instance) => + { + 'id': instance.id, + 'ver': instance.ver, + 'state': instance.state, + }; diff --git a/lib/tools/constants.dart b/lib/tools/constants.dart index 0ba1817..a6bfd4a 100644 --- a/lib/tools/constants.dart +++ b/lib/tools/constants.dart @@ -8,6 +8,7 @@ class Constants { static const String messageTopicSessionInfoUpdate = "status_info_updated"; static const String messageTopicStatusInfoUpdate = "session_info_updated"; static const String messageTopicJobReceived = "job_received"; + static const String messageTopicJobDeleted = "job_deleted"; static const String messageTopicMessageReceived = "message_received"; static const String messageTopicPushContentView = "push_content_view"; static const String messageTopicPopContentView = "pop_content_view"; diff --git a/lib/tools/messages/job_deleted_message.dart b/lib/tools/messages/job_deleted_message.dart new file mode 100644 index 0000000..425b25e --- /dev/null +++ b/lib/tools/messages/job_deleted_message.dart @@ -0,0 +1,7 @@ +import 'package:stadtbote/model/job.dart'; + +class JobDeletedMessage { + final int jobId; + + JobDeletedMessage({required this.jobId}); +} \ No newline at end of file diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index c7caf41..b251f57 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -3,16 +3,20 @@ import 'dart:convert'; import 'dart:math'; import 'package:flutter_broadcast_receiver/flutter_broadcast_receiver.dart'; +import 'package:isar/isar.dart'; import 'package:mqtt_client/mqtt_client.dart'; import 'package:mqtt_client/mqtt_server_client.dart'; -import 'package:stadtbote/model/bootstrap_request.dart'; -import 'package:stadtbote/model/bootstrap_response_payload.dart'; -import 'package:stadtbote/model/device_object.dart'; +import 'package:stadtbote/protocoll_messages/bootstrap_request.dart'; +import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart'; +import 'package:stadtbote/protocoll_messages/device_object.dart'; import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/model/message.dart'; -import 'package:stadtbote/model/payload_container.dart'; -import 'package:stadtbote/model/start_session_message.dart'; +import 'package:stadtbote/protocoll_messages/job_del_message.dart'; +import 'package:stadtbote/protocoll_messages/payload_container.dart'; +import 'package:stadtbote/protocoll_messages/start_session_message.dart'; +import 'package:stadtbote/protocoll_messages/sync_jobs_message.dart'; import 'package:stadtbote/tools/connection_status.dart'; +import 'package:stadtbote/tools/messages/job_deleted_message.dart'; import 'package:stadtbote/tools/messages/job_received_message.dart'; import 'package:stadtbote/tools/messages/message_message.dart'; import 'package:stadtbote/tools/messages/session_info_update.dart'; @@ -186,6 +190,8 @@ class MqttCore { } void _sessionMessageReceived(payloadData) async { + await _sendSyncMessage(); + var statusMessage = Status.fromJson(payloadData['status']); await MyApp.isarInstance.writeTxn(() async { @@ -219,18 +225,18 @@ class MqttCore { } } - void _jobDeleteReceived(payloadData) async { - Util.logInfo('_jobDeleteReceived'); - - /*for (var foundJobData in payloadData) { - Job newJob = Job.fromJson(foundJobData); + void _jobDeleteReceived(List payloadData) async { + Map map = {}; + map["jobDel"] = payloadData; + var jobDelMessage = JobDelMessage.fromJson(map); + for(var jobId in jobDelMessage.jobDel) { await MyApp.isarInstance.writeTxn(() async { - await MyApp.isarInstance.jobs.put(newJob); + await MyApp.isarInstance.jobs.delete(jobId); }); - BroadcastReceiver().publish(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob)); - }*/ + BroadcastReceiver().publish(Constants.messageTopicJobDeleted, arguments: JobDeletedMessage(jobId: jobId)); + } } void _syncRequestReceived(payloadData) async { @@ -335,4 +341,23 @@ class MqttCore { var messageId = _mqttClient.publishMessage(topic, MqttQos.exactlyOnce, payload!); Util.logInfo("send start session json with messageId: $messageId"); } + + _sendSyncMessage() async + { + var jobs = await MyApp.isarInstance.jobs.filter().stateGreaterThan(-1).findAll(); + + var answer = SyncJobsMessage(); + answer.sync = SyncJobMessageSync(); + answer.sync.jobs = []; + answer.sync.utcUnixTime = DateTime.now().toUtc().millisecondsSinceEpoch ~/ 1000; + for (var job in jobs) { + SyncJobMessageJob syncJob = SyncJobMessageJob(); + syncJob.state = job.state; + syncJob.id = job.id; + syncJob.ver = job.ver; + answer.sync.jobs.add(syncJob); + } + + MqttCore.instance.publishPayloadMessage("server", answer.toJson()); + } }