From 0884ecd911540fedc52c6e3c313316664b560a13 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 11 Dec 2025 03:40:33 +0300 Subject: [PATCH] model --- .../lib/src/models/voice_model.dart | 40 + .../lib/src/models/voice_model.g.dart | 1309 +++++++++++++++++ 2 files changed, 1349 insertions(+) create mode 100644 mnemo_cards_common_backend/lib/src/models/voice_model.dart create mode 100644 mnemo_cards_common_backend/lib/src/models/voice_model.g.dart diff --git a/mnemo_cards_common_backend/lib/src/models/voice_model.dart b/mnemo_cards_common_backend/lib/src/models/voice_model.dart new file mode 100644 index 0000000..6dca809 --- /dev/null +++ b/mnemo_cards_common_backend/lib/src/models/voice_model.dart @@ -0,0 +1,40 @@ +import 'package:copy_with_extension/copy_with_extension.dart'; +import 'package:isar/isar.dart'; +import 'package:json_annotation/json_annotation.dart'; + +import 'game_card_model.dart'; + +part 'voice_model.g.dart'; + +@JsonSerializable(fieldRename: FieldRename.snake) +@Collection() +@CopyWith() +class VoiceModel { + Id? id; + final String phrase; + final String path; + final String speaker; + @JsonKey(includeFromJson: true, includeToJson: false) + final DateTime? createdAt; + @JsonKey(includeFromJson: true, includeToJson: false) + final DateTime? updatedAt; + @JsonKey(defaultValue: false) + final bool isDeleted; + @Backlink(to: 'voices') + final IsarLinks cards = IsarLinks(); + + VoiceModel({ + required this.phrase, + required this.path, + required this.speaker, + this.createdAt, + this.updatedAt, + this.id, + this.isDeleted = false, + }); + + factory VoiceModel.fromJson(Map json) => + _$VoiceModelFromJson(json); + + Map toJson() => _$VoiceModelToJson(this); +} diff --git a/mnemo_cards_common_backend/lib/src/models/voice_model.g.dart b/mnemo_cards_common_backend/lib/src/models/voice_model.g.dart new file mode 100644 index 0000000..6333e10 --- /dev/null +++ b/mnemo_cards_common_backend/lib/src/models/voice_model.g.dart @@ -0,0 +1,1309 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'voice_model.dart'; + +// ************************************************************************** +// CopyWithGenerator +// ************************************************************************** + +abstract class _$VoiceModelCWProxy { + VoiceModel phrase(String phrase); + + VoiceModel path(String path); + + VoiceModel speaker(String speaker); + + VoiceModel createdAt(DateTime? createdAt); + + VoiceModel updatedAt(DateTime? updatedAt); + + VoiceModel id(int? id); + + VoiceModel isDeleted(bool isDeleted); + + /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `VoiceModel(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. + /// + /// Usage + /// ```dart + /// VoiceModel(...).copyWith(id: 12, name: "My name") + /// ```` + VoiceModel call({ + String? phrase, + String? path, + String? speaker, + DateTime? createdAt, + DateTime? updatedAt, + int? id, + bool? isDeleted, + }); +} + +/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfVoiceModel.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfVoiceModel.copyWith.fieldName(...)` +class _$VoiceModelCWProxyImpl implements _$VoiceModelCWProxy { + const _$VoiceModelCWProxyImpl(this._value); + + final VoiceModel _value; + + @override + VoiceModel phrase(String phrase) => this(phrase: phrase); + + @override + VoiceModel path(String path) => this(path: path); + + @override + VoiceModel speaker(String speaker) => this(speaker: speaker); + + @override + VoiceModel createdAt(DateTime? createdAt) => this(createdAt: createdAt); + + @override + VoiceModel updatedAt(DateTime? updatedAt) => this(updatedAt: updatedAt); + + @override + VoiceModel id(int? id) => this(id: id); + + @override + VoiceModel isDeleted(bool isDeleted) => this(isDeleted: isDeleted); + + @override + + /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `VoiceModel(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. + /// + /// Usage + /// ```dart + /// VoiceModel(...).copyWith(id: 12, name: "My name") + /// ```` + VoiceModel call({ + Object? phrase = const $CopyWithPlaceholder(), + Object? path = const $CopyWithPlaceholder(), + Object? speaker = const $CopyWithPlaceholder(), + Object? createdAt = const $CopyWithPlaceholder(), + Object? updatedAt = const $CopyWithPlaceholder(), + Object? id = const $CopyWithPlaceholder(), + Object? isDeleted = const $CopyWithPlaceholder(), + }) { + return VoiceModel( + phrase: phrase == const $CopyWithPlaceholder() || phrase == null + ? _value.phrase + // ignore: cast_nullable_to_non_nullable + : phrase as String, + path: path == const $CopyWithPlaceholder() || path == null + ? _value.path + // ignore: cast_nullable_to_non_nullable + : path as String, + speaker: speaker == const $CopyWithPlaceholder() || speaker == null + ? _value.speaker + // ignore: cast_nullable_to_non_nullable + : speaker as String, + createdAt: createdAt == const $CopyWithPlaceholder() + ? _value.createdAt + // ignore: cast_nullable_to_non_nullable + : createdAt as DateTime?, + updatedAt: updatedAt == const $CopyWithPlaceholder() + ? _value.updatedAt + // ignore: cast_nullable_to_non_nullable + : updatedAt as DateTime?, + id: id == const $CopyWithPlaceholder() + ? _value.id + // ignore: cast_nullable_to_non_nullable + : id as int?, + isDeleted: isDeleted == const $CopyWithPlaceholder() || isDeleted == null + ? _value.isDeleted + // ignore: cast_nullable_to_non_nullable + : isDeleted as bool, + ); + } +} + +extension $VoiceModelCopyWith on VoiceModel { + /// Returns a callable class that can be used as follows: `instanceOfVoiceModel.copyWith(...)` or like so:`instanceOfVoiceModel.copyWith.fieldName(...)`. + // ignore: library_private_types_in_public_api + _$VoiceModelCWProxy get copyWith => _$VoiceModelCWProxyImpl(this); +} + +// ************************************************************************** +// 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 GetVoiceModelCollection on Isar { + IsarCollection get voiceModels => this.collection(); +} + +const VoiceModelSchema = CollectionSchema( + name: r'VoiceModel', + id: 959601499772633112, + properties: { + r'createdAt': PropertySchema( + id: 0, + name: r'createdAt', + type: IsarType.dateTime, + ), + r'isDeleted': PropertySchema( + id: 1, + name: r'isDeleted', + type: IsarType.bool, + ), + r'path': PropertySchema( + id: 2, + name: r'path', + type: IsarType.string, + ), + r'phrase': PropertySchema( + id: 3, + name: r'phrase', + type: IsarType.string, + ), + r'speaker': PropertySchema( + id: 4, + name: r'speaker', + type: IsarType.string, + ), + r'updatedAt': PropertySchema( + id: 5, + name: r'updatedAt', + type: IsarType.dateTime, + ) + }, + estimateSize: _voiceModelEstimateSize, + serialize: _voiceModelSerialize, + deserialize: _voiceModelDeserialize, + deserializeProp: _voiceModelDeserializeProp, + idName: r'id', + indexes: {}, + links: { + r'cards': LinkSchema( + id: -6155681444074486820, + name: r'cards', + target: r'GameCardModel', + single: false, + linkName: r'voices', + ) + }, + embeddedSchemas: {}, + getId: _voiceModelGetId, + getLinks: _voiceModelGetLinks, + attach: _voiceModelAttach, + version: '3.1.0+1', +); + +int _voiceModelEstimateSize( + VoiceModel object, + List offsets, + Map> allOffsets, +) { + var bytesCount = offsets.last; + bytesCount += 3 + object.path.length * 3; + bytesCount += 3 + object.phrase.length * 3; + bytesCount += 3 + object.speaker.length * 3; + return bytesCount; +} + +void _voiceModelSerialize( + VoiceModel object, + IsarWriter writer, + List offsets, + Map> allOffsets, +) { + writer.writeDateTime(offsets[0], object.createdAt); + writer.writeBool(offsets[1], object.isDeleted); + writer.writeString(offsets[2], object.path); + writer.writeString(offsets[3], object.phrase); + writer.writeString(offsets[4], object.speaker); + writer.writeDateTime(offsets[5], object.updatedAt); +} + +VoiceModel _voiceModelDeserialize( + Id id, + IsarReader reader, + List offsets, + Map> allOffsets, +) { + final object = VoiceModel( + createdAt: reader.readDateTimeOrNull(offsets[0]), + id: id, + isDeleted: reader.readBoolOrNull(offsets[1]) ?? false, + path: reader.readString(offsets[2]), + phrase: reader.readString(offsets[3]), + speaker: reader.readString(offsets[4]), + updatedAt: reader.readDateTimeOrNull(offsets[5]), + ); + return object; +} + +P _voiceModelDeserializeProp

( + IsarReader reader, + int propertyId, + int offset, + Map> allOffsets, +) { + switch (propertyId) { + case 0: + return (reader.readDateTimeOrNull(offset)) as P; + case 1: + return (reader.readBoolOrNull(offset) ?? false) as P; + case 2: + return (reader.readString(offset)) as P; + case 3: + return (reader.readString(offset)) as P; + case 4: + return (reader.readString(offset)) as P; + case 5: + return (reader.readDateTimeOrNull(offset)) as P; + default: + throw IsarError('Unknown property with id $propertyId'); + } +} + +Id _voiceModelGetId(VoiceModel object) { + return object.id ?? Isar.autoIncrement; +} + +List> _voiceModelGetLinks(VoiceModel object) { + return [object.cards]; +} + +void _voiceModelAttach(IsarCollection col, Id id, VoiceModel object) { + object.id = id; + object.cards.attach(col, col.isar.collection(), r'cards', id); +} + +extension VoiceModelQueryWhereSort + on QueryBuilder { + QueryBuilder anyId() { + return QueryBuilder.apply(this, (query) { + return query.addWhereClause(const IdWhereClause.any()); + }); + } +} + +extension VoiceModelQueryWhere + 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 VoiceModelQueryFilter + on QueryBuilder { + QueryBuilder + createdAtIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'createdAt', + )); + }); + } + + QueryBuilder + createdAtIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'createdAt', + )); + }); + } + + QueryBuilder createdAtEqualTo( + DateTime? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'createdAt', + value: value, + )); + }); + } + + QueryBuilder + createdAtGreaterThan( + DateTime? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'createdAt', + value: value, + )); + }); + } + + QueryBuilder createdAtLessThan( + DateTime? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'createdAt', + value: value, + )); + }); + } + + QueryBuilder createdAtBetween( + DateTime? lower, + DateTime? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'createdAt', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } + + QueryBuilder idIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'id', + )); + }); + } + + QueryBuilder idIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'id', + )); + }); + } + + 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 isDeletedEqualTo( + bool value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'isDeleted', + value: value, + )); + }); + } + + QueryBuilder pathEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'path', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'path', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'path', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathBetween( + 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'path', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'path', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'path', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'path', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'path', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder pathIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'path', + value: '', + )); + }); + } + + QueryBuilder pathIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'path', + value: '', + )); + }); + } + + QueryBuilder phraseEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'phrase', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'phrase', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'phrase', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseBetween( + 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'phrase', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'phrase', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'phrase', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'phrase', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'phrase', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder phraseIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'phrase', + value: '', + )); + }); + } + + QueryBuilder + phraseIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'phrase', + value: '', + )); + }); + } + + QueryBuilder speakerEqualTo( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'speaker', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder + speakerGreaterThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'speaker', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerLessThan( + String value, { + bool include = false, + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'speaker', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerBetween( + 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'speaker', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerStartsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.startsWith( + property: r'speaker', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerEndsWith( + String value, { + bool caseSensitive = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.endsWith( + property: r'speaker', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerContains( + String value, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.contains( + property: r'speaker', + value: value, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerMatches( + String pattern, + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.matches( + property: r'speaker', + wildcard: pattern, + caseSensitive: caseSensitive, + )); + }); + } + + QueryBuilder speakerIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'speaker', + value: '', + )); + }); + } + + QueryBuilder + speakerIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + property: r'speaker', + value: '', + )); + }); + } + + QueryBuilder + updatedAtIsNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNull( + property: r'updatedAt', + )); + }); + } + + QueryBuilder + updatedAtIsNotNull() { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(const FilterCondition.isNotNull( + property: r'updatedAt', + )); + }); + } + + QueryBuilder updatedAtEqualTo( + DateTime? value) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.equalTo( + property: r'updatedAt', + value: value, + )); + }); + } + + QueryBuilder + updatedAtGreaterThan( + DateTime? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.greaterThan( + include: include, + property: r'updatedAt', + value: value, + )); + }); + } + + QueryBuilder updatedAtLessThan( + DateTime? value, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.lessThan( + include: include, + property: r'updatedAt', + value: value, + )); + }); + } + + QueryBuilder updatedAtBetween( + DateTime? lower, + DateTime? upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.addFilterCondition(FilterCondition.between( + property: r'updatedAt', + lower: lower, + includeLower: includeLower, + upper: upper, + includeUpper: includeUpper, + )); + }); + } +} + +extension VoiceModelQueryObject + on QueryBuilder {} + +extension VoiceModelQueryLinks + on QueryBuilder { + QueryBuilder cards( + FilterQuery q) { + return QueryBuilder.apply(this, (query) { + return query.link(q, r'cards'); + }); + } + + QueryBuilder + cardsLengthEqualTo(int length) { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'cards', length, true, length, true); + }); + } + + QueryBuilder cardsIsEmpty() { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'cards', 0, true, 0, true); + }); + } + + QueryBuilder + cardsIsNotEmpty() { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'cards', 0, false, 999999, true); + }); + } + + QueryBuilder + cardsLengthLessThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'cards', 0, true, length, include); + }); + } + + QueryBuilder + cardsLengthGreaterThan( + int length, { + bool include = false, + }) { + return QueryBuilder.apply(this, (query) { + return query.linkLength(r'cards', length, include, 999999, true); + }); + } + + QueryBuilder + cardsLengthBetween( + int lower, + int upper, { + bool includeLower = true, + bool includeUpper = true, + }) { + return QueryBuilder.apply(this, (query) { + return query.linkLength( + r'cards', lower, includeLower, upper, includeUpper); + }); + } +} + +extension VoiceModelQuerySortBy + on QueryBuilder { + QueryBuilder sortByCreatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'createdAt', Sort.asc); + }); + } + + QueryBuilder sortByCreatedAtDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'createdAt', Sort.desc); + }); + } + + QueryBuilder sortByIsDeleted() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'isDeleted', Sort.asc); + }); + } + + QueryBuilder sortByIsDeletedDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'isDeleted', Sort.desc); + }); + } + + QueryBuilder sortByPath() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'path', Sort.asc); + }); + } + + QueryBuilder sortByPathDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'path', Sort.desc); + }); + } + + QueryBuilder sortByPhrase() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'phrase', Sort.asc); + }); + } + + QueryBuilder sortByPhraseDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'phrase', Sort.desc); + }); + } + + QueryBuilder sortBySpeaker() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'speaker', Sort.asc); + }); + } + + QueryBuilder sortBySpeakerDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'speaker', Sort.desc); + }); + } + + QueryBuilder sortByUpdatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.asc); + }); + } + + QueryBuilder sortByUpdatedAtDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.desc); + }); + } +} + +extension VoiceModelQuerySortThenBy + on QueryBuilder { + QueryBuilder thenByCreatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'createdAt', Sort.asc); + }); + } + + QueryBuilder thenByCreatedAtDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'createdAt', 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 thenByIsDeleted() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'isDeleted', Sort.asc); + }); + } + + QueryBuilder thenByIsDeletedDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'isDeleted', Sort.desc); + }); + } + + QueryBuilder thenByPath() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'path', Sort.asc); + }); + } + + QueryBuilder thenByPathDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'path', Sort.desc); + }); + } + + QueryBuilder thenByPhrase() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'phrase', Sort.asc); + }); + } + + QueryBuilder thenByPhraseDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'phrase', Sort.desc); + }); + } + + QueryBuilder thenBySpeaker() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'speaker', Sort.asc); + }); + } + + QueryBuilder thenBySpeakerDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'speaker', Sort.desc); + }); + } + + QueryBuilder thenByUpdatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.asc); + }); + } + + QueryBuilder thenByUpdatedAtDesc() { + return QueryBuilder.apply(this, (query) { + return query.addSortBy(r'updatedAt', Sort.desc); + }); + } +} + +extension VoiceModelQueryWhereDistinct + on QueryBuilder { + QueryBuilder distinctByCreatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'createdAt'); + }); + } + + QueryBuilder distinctByIsDeleted() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'isDeleted'); + }); + } + + QueryBuilder distinctByPath( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'path', caseSensitive: caseSensitive); + }); + } + + QueryBuilder distinctByPhrase( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'phrase', caseSensitive: caseSensitive); + }); + } + + QueryBuilder distinctBySpeaker( + {bool caseSensitive = true}) { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'speaker', caseSensitive: caseSensitive); + }); + } + + QueryBuilder distinctByUpdatedAt() { + return QueryBuilder.apply(this, (query) { + return query.addDistinctBy(r'updatedAt'); + }); + } +} + +extension VoiceModelQueryProperty + on QueryBuilder { + QueryBuilder idProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'id'); + }); + } + + QueryBuilder createdAtProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'createdAt'); + }); + } + + QueryBuilder isDeletedProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'isDeleted'); + }); + } + + QueryBuilder pathProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'path'); + }); + } + + QueryBuilder phraseProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'phrase'); + }); + } + + QueryBuilder speakerProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'speaker'); + }); + } + + QueryBuilder updatedAtProperty() { + return QueryBuilder.apply(this, (query) { + return query.addPropertyName(r'updatedAt'); + }); + } +} + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +VoiceModel _$VoiceModelFromJson(Map json) => VoiceModel( + phrase: json['phrase'] as String, + path: json['path'] as String, + speaker: json['speaker'] as String, + createdAt: json['created_at'] == null + ? null + : DateTime.parse(json['created_at'] as String), + updatedAt: json['updated_at'] == null + ? null + : DateTime.parse(json['updated_at'] as String), + id: (json['id'] as num?)?.toInt(), + isDeleted: json['is_deleted'] as bool? ?? false, + ); + +Map _$VoiceModelToJson(VoiceModel instance) => + { + 'id': instance.id, + 'phrase': instance.phrase, + 'path': instance.path, + 'speaker': instance.speaker, + 'is_deleted': instance.isDeleted, + };