diff --git a/graphql-contracts b/graphql-contracts index 39f32e3..d694c7d 160000 --- a/graphql-contracts +++ b/graphql-contracts @@ -1 +1 @@ -Subproject commit 39f32e3d3663e3ea724573d54973984645ae1853 +Subproject commit d694c7d78c3e234ae19bf41af6b0e555d048109c diff --git a/lib/features/mapflow/application/place_cubit.dart b/lib/features/mapflow/application/place_cubit.dart index 7f67b3b..2783105 100644 --- a/lib/features/mapflow/application/place_cubit.dart +++ b/lib/features/mapflow/application/place_cubit.dart @@ -20,8 +20,8 @@ class PlaceState { required this.hasTelegramAuth, required this.userCoordinate, required this.reviewDraft, - required this.searchQuery, - required this.searchMessage, + required this.voiceFilterTranscript, + required this.voiceFilterTags, }); static final _distance = Distance(); @@ -33,8 +33,8 @@ class PlaceState { final bool hasTelegramAuth; final LatLng? userCoordinate; final VoiceReviewDraft reviewDraft; - final String searchQuery; - final String searchMessage; + final String voiceFilterTranscript; + final List voiceFilterTags; List get recommendations { final selected = selectedTrait; @@ -74,8 +74,8 @@ class PlaceState { bool? hasTelegramAuth, Object? userCoordinate = _unset, VoiceReviewDraft? reviewDraft, - String? searchQuery, - String? searchMessage, + String? voiceFilterTranscript, + List? voiceFilterTags, }) { return PlaceState( selectedTrait: identical(selectedTrait, _unset) @@ -93,8 +93,9 @@ class PlaceState { ? this.userCoordinate : userCoordinate as LatLng?, reviewDraft: reviewDraft ?? this.reviewDraft, - searchQuery: searchQuery ?? this.searchQuery, - searchMessage: searchMessage ?? this.searchMessage, + voiceFilterTranscript: + voiceFilterTranscript ?? this.voiceFilterTranscript, + voiceFilterTags: voiceFilterTags ?? this.voiceFilterTags, ); } } @@ -164,8 +165,8 @@ class PlaceCubit extends Cubit { hasTelegramAuth: _authRepository.hasTelegramAuth, userCoordinate: userCoordinate, reviewDraft: _emptyDraft, - searchQuery: '', - searchMessage: '', + voiceFilterTranscript: '', + voiceFilterTags: const [], ), ), ); @@ -182,7 +183,12 @@ class PlaceCubit extends Cubit { } emit( PlaceViewState.ready( - value.copyWith(selectedTrait: trait, selectedPlaceId: next?.id), + value.copyWith( + selectedTrait: trait, + selectedPlaceId: next?.id, + voiceFilterTranscript: '', + voiceFilterTags: const [], + ), ), ); } @@ -202,15 +208,15 @@ class PlaceCubit extends Cubit { emit(PlaceViewState.ready(value.copyWith(selectedPlaceId: placeId))); } - Future searchPlaces(String query) async { + Future recommendPlacesByVoice({ + required String audioContentBase64, + required String audioMimeType, + }) async { final value = _requireReady(); - final normalizedQuery = query.trim(); - if (normalizedQuery.isEmpty) { - await clearSearch(); - return; - } - - final result = await _placesRepository.searchPlaces(normalizedQuery); + final result = await _placesRepository.recommendPlacesByVoice( + audioContentBase64: audioContentBase64, + audioMimeType: audioMimeType, + ); emit( PlaceViewState.ready( value.copyWith( @@ -219,14 +225,14 @@ class PlaceCubit extends Cubit { ? null : result.places.first.id, selectedTrait: null, - searchQuery: normalizedQuery, - searchMessage: result.message, + voiceFilterTranscript: result.transcript, + voiceFilterTags: result.tags, ), ), ); } - Future clearSearch() async { + Future clearVoiceFilter() async { final value = _requireReady(); final places = await _placesRepository.fetchPlaces(); emit( @@ -235,8 +241,8 @@ class PlaceCubit extends Cubit { places: places, selectedPlaceId: places.isEmpty ? null : places.first.id, selectedTrait: null, - searchQuery: '', - searchMessage: '', + voiceFilterTranscript: '', + voiceFilterTags: const [], ), ), ); @@ -310,8 +316,8 @@ class PlaceCubit extends Cubit { places: places, selectedPlaceId: selectedPlace, reviewDraft: _emptyDraft, - searchQuery: '', - searchMessage: '', + voiceFilterTranscript: '', + voiceFilterTags: const [], ), ), ); @@ -342,8 +348,8 @@ class PlaceCubit extends Cubit { hasTelegramAuth: hasTelegramAuth, userCoordinate: null, reviewDraft: _emptyDraft, - searchQuery: '', - searchMessage: '', + voiceFilterTranscript: '', + voiceFilterTags: const [], ); } } diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.ast.gql.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.ast.gql.dart similarity index 88% rename from lib/features/mapflow/data/graphql/__generated__/search_places.ast.gql.dart rename to lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.ast.gql.dart index 0e5b1ba..17b6153 100644 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.ast.gql.dart +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.ast.gql.dart @@ -4,14 +4,14 @@ // ignore_for_file: no_leading_underscores_for_library_prefixes import 'package:gql/ast.dart' as _i1; -const SearchPlaces = _i1.OperationDefinitionNode( - type: _i1.OperationType.query, - name: _i1.NameNode(value: 'SearchPlaces'), +const RecommendPlacesByVoice = _i1.OperationDefinitionNode( + type: _i1.OperationType.mutation, + name: _i1.NameNode(value: 'RecommendPlacesByVoice'), variableDefinitions: [ _i1.VariableDefinitionNode( variable: _i1.VariableNode(name: _i1.NameNode(value: 'input')), type: _i1.NamedTypeNode( - name: _i1.NameNode(value: 'SearchPlacesInput'), + name: _i1.NameNode(value: 'VoicePlaceRecommendationsInput'), isNonNull: true, ), defaultValue: _i1.DefaultValueNode(value: null), @@ -22,7 +22,7 @@ const SearchPlaces = _i1.OperationDefinitionNode( selectionSet: _i1.SelectionSetNode( selections: [ _i1.FieldNode( - name: _i1.NameNode(value: 'searchPlaces'), + name: _i1.NameNode(value: 'recommendPlacesByVoice'), alias: null, arguments: [ _i1.ArgumentNode( @@ -34,7 +34,21 @@ const SearchPlaces = _i1.OperationDefinitionNode( selectionSet: _i1.SelectionSetNode( selections: [ _i1.FieldNode( - name: _i1.NameNode(value: 'message'), + name: _i1.NameNode(value: 'transcript'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'tags'), + alias: null, + arguments: [], + directives: [], + selectionSet: null, + ), + _i1.FieldNode( + name: _i1.NameNode(value: 'summary'), alias: null, arguments: [], directives: [], @@ -192,4 +206,4 @@ const SearchPlaces = _i1.OperationDefinitionNode( ], ), ); -const document = _i1.DocumentNode(definitions: [SearchPlaces]); +const document = _i1.DocumentNode(definitions: [RecommendPlacesByVoice]); diff --git a/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.dart new file mode 100644 index 0000000..5380a01 --- /dev/null +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.dart @@ -0,0 +1,195 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/json_object.dart' as _i2; +import 'package:built_value/serializer.dart'; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart' + as _i3; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/serializers.gql.dart' + as _i1; + +part 'recommend_places_by_voice.data.gql.g.dart'; + +abstract class GRecommendPlacesByVoiceData + implements + Built { + GRecommendPlacesByVoiceData._(); + + factory GRecommendPlacesByVoiceData([ + void Function(GRecommendPlacesByVoiceDataBuilder b) updates, + ]) = _$GRecommendPlacesByVoiceData; + + static void _initializeBuilder(GRecommendPlacesByVoiceDataBuilder b) => + b..G__typename = 'Mutation'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + GRecommendPlacesByVoiceData_recommendPlacesByVoice get recommendPlacesByVoice; + static Serializer get serializer => + _$gRecommendPlacesByVoiceDataSerializer; + + Map toJson() => + (_i1.serializers.serializeWith( + GRecommendPlacesByVoiceData.serializer, + this, + ) + as Map); + + static GRecommendPlacesByVoiceData? fromJson(Map json) => _i1 + .serializers + .deserializeWith(GRecommendPlacesByVoiceData.serializer, json); +} + +abstract class GRecommendPlacesByVoiceData_recommendPlacesByVoice + implements + Built< + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder + > { + GRecommendPlacesByVoiceData_recommendPlacesByVoice._(); + + factory GRecommendPlacesByVoiceData_recommendPlacesByVoice([ + void Function(GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder b) + updates, + ]) = _$GRecommendPlacesByVoiceData_recommendPlacesByVoice; + + static void _initializeBuilder( + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder b, + ) => b..G__typename = 'VoicePlaceRecommendationsPayload'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get transcript; + BuiltList get tags; + String get summary; + BuiltList + get places; + static Serializer + get serializer => + _$gRecommendPlacesByVoiceDataRecommendPlacesByVoiceSerializer; + + Map toJson() => + (_i1.serializers.serializeWith( + GRecommendPlacesByVoiceData_recommendPlacesByVoice.serializer, + this, + ) + as Map); + + static GRecommendPlacesByVoiceData_recommendPlacesByVoice? fromJson( + Map json, + ) => _i1.serializers.deserializeWith( + GRecommendPlacesByVoiceData_recommendPlacesByVoice.serializer, + json, + ); +} + +abstract class GRecommendPlacesByVoiceData_recommendPlacesByVoice_places + implements + Built< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder + > { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places._(); + + factory GRecommendPlacesByVoiceData_recommendPlacesByVoice_places([ + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder b, + ) + updates, + ]) = _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places; + + static void _initializeBuilder( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder b, + ) => b..G__typename = 'Place'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get id; + String get googlePlaceId; + String get name; + double get latitude; + double get longitude; + String? get googlePrimaryType; + BuiltList get googleTypes; + String? get googleBusinessStatus; + double? get googleRating; + int? get googleUserRatingCount; + _i2.JsonObject? get googleRegularOpeningHours; + _i2.JsonObject? get googleCurrentOpeningHours; + BuiltList get photoUrls; + BuiltList get traits; + bool get isFavorite; + BuiltList< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + > + get experiences; + static Serializer + get serializer => + _$gRecommendPlacesByVoiceDataRecommendPlacesByVoicePlacesSerializer; + + Map toJson() => + (_i1.serializers.serializeWith( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places + .serializer, + this, + ) + as Map); + + static GRecommendPlacesByVoiceData_recommendPlacesByVoice_places? fromJson( + Map json, + ) => _i1.serializers.deserializeWith( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places.serializer, + json, + ); +} + +abstract class GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + implements + Built< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder + > { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences._(); + + factory GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences([ + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder + b, + ) + updates, + ]) = _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences; + + static void _initializeBuilder( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder + b, + ) => b..G__typename = 'VoiceExperience'; + + @BuiltValueField(wireName: '__typename') + String get G__typename; + String get id; + _i3.GVoiceExperienceStatus get status; + String get createdAt; + static Serializer< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + > + get serializer => + _$gRecommendPlacesByVoiceDataRecommendPlacesByVoicePlacesExperiencesSerializer; + + Map toJson() => + (_i1.serializers.serializeWith( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + .serializer, + this, + ) + as Map); + + static GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences? + fromJson(Map json) => _i1.serializers.deserializeWith( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + .serializer, + json, + ); +} diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.data.gql.g.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.g.dart similarity index 62% rename from lib/features/mapflow/data/graphql/__generated__/search_places.data.gql.g.dart rename to lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.g.dart index 5f428d1..d565e28 100644 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.data.gql.g.dart +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.g.dart @@ -1,34 +1,40 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of 'search_places.data.gql.dart'; +part of 'recommend_places_by_voice.data.gql.dart'; // ************************************************************************** // BuiltValueGenerator // ************************************************************************** -Serializer _$gSearchPlacesDataSerializer = - _$GSearchPlacesDataSerializer(); -Serializer -_$gSearchPlacesDataSearchPlacesSerializer = - _$GSearchPlacesData_searchPlacesSerializer(); -Serializer -_$gSearchPlacesDataSearchPlacesPlacesSerializer = - _$GSearchPlacesData_searchPlaces_placesSerializer(); -Serializer -_$gSearchPlacesDataSearchPlacesPlacesExperiencesSerializer = - _$GSearchPlacesData_searchPlaces_places_experiencesSerializer(); +Serializer +_$gRecommendPlacesByVoiceDataSerializer = + _$GRecommendPlacesByVoiceDataSerializer(); +Serializer +_$gRecommendPlacesByVoiceDataRecommendPlacesByVoiceSerializer = + _$GRecommendPlacesByVoiceData_recommendPlacesByVoiceSerializer(); +Serializer +_$gRecommendPlacesByVoiceDataRecommendPlacesByVoicePlacesSerializer = + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesSerializer(); +Serializer< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences +> +_$gRecommendPlacesByVoiceDataRecommendPlacesByVoicePlacesExperiencesSerializer = + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesSerializer(); -class _$GSearchPlacesDataSerializer - implements StructuredSerializer { +class _$GRecommendPlacesByVoiceDataSerializer + implements StructuredSerializer { @override - final Iterable types = const [GSearchPlacesData, _$GSearchPlacesData]; + final Iterable types = const [ + GRecommendPlacesByVoiceData, + _$GRecommendPlacesByVoiceData, + ]; @override - final String wireName = 'GSearchPlacesData'; + final String wireName = 'GRecommendPlacesByVoiceData'; @override Iterable serialize( Serializers serializers, - GSearchPlacesData object, { + GRecommendPlacesByVoiceData object, { FullType specifiedType = FullType.unspecified, }) { final result = [ @@ -37,10 +43,12 @@ class _$GSearchPlacesDataSerializer object.G__typename, specifiedType: const FullType(String), ), - 'searchPlaces', + 'recommendPlacesByVoice', serializers.serialize( - object.searchPlaces, - specifiedType: const FullType(GSearchPlacesData_searchPlaces), + object.recommendPlacesByVoice, + specifiedType: const FullType( + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + ), ), ]; @@ -48,12 +56,12 @@ class _$GSearchPlacesDataSerializer } @override - GSearchPlacesData deserialize( + GRecommendPlacesByVoiceData deserialize( Serializers serializers, Iterable serialized, { FullType specifiedType = FullType.unspecified, }) { - final result = GSearchPlacesDataBuilder(); + final result = GRecommendPlacesByVoiceDataBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { @@ -69,13 +77,15 @@ class _$GSearchPlacesDataSerializer )! as String; break; - case 'searchPlaces': - result.searchPlaces.replace( + case 'recommendPlacesByVoice': + result.recommendPlacesByVoice.replace( serializers.deserialize( value, - specifiedType: const FullType(GSearchPlacesData_searchPlaces), + specifiedType: const FullType( + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + ), )! - as GSearchPlacesData_searchPlaces, + as GRecommendPlacesByVoiceData_recommendPlacesByVoice, ); break; } @@ -85,20 +95,23 @@ class _$GSearchPlacesDataSerializer } } -class _$GSearchPlacesData_searchPlacesSerializer - implements StructuredSerializer { +class _$GRecommendPlacesByVoiceData_recommendPlacesByVoiceSerializer + implements + StructuredSerializer< + GRecommendPlacesByVoiceData_recommendPlacesByVoice + > { @override final Iterable types = const [ - GSearchPlacesData_searchPlaces, - _$GSearchPlacesData_searchPlaces, + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice, ]; @override - final String wireName = 'GSearchPlacesData_searchPlaces'; + final String wireName = 'GRecommendPlacesByVoiceData_recommendPlacesByVoice'; @override Iterable serialize( Serializers serializers, - GSearchPlacesData_searchPlaces object, { + GRecommendPlacesByVoiceData_recommendPlacesByVoice object, { FullType specifiedType = FullType.unspecified, }) { final result = [ @@ -107,16 +120,30 @@ class _$GSearchPlacesData_searchPlacesSerializer object.G__typename, specifiedType: const FullType(String), ), - 'message', + 'transcript', serializers.serialize( - object.message, + object.transcript, + specifiedType: const FullType(String), + ), + 'tags', + serializers.serialize( + object.tags, + specifiedType: const FullType(BuiltList, const [ + const FullType(String), + ]), + ), + 'summary', + serializers.serialize( + object.summary, specifiedType: const FullType(String), ), 'places', serializers.serialize( object.places, specifiedType: const FullType(BuiltList, const [ - const FullType(GSearchPlacesData_searchPlaces_places), + const FullType( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + ), ]), ), ]; @@ -125,12 +152,12 @@ class _$GSearchPlacesData_searchPlacesSerializer } @override - GSearchPlacesData_searchPlaces deserialize( + GRecommendPlacesByVoiceData_recommendPlacesByVoice deserialize( Serializers serializers, Iterable serialized, { FullType specifiedType = FullType.unspecified, }) { - final result = GSearchPlacesData_searchPlacesBuilder(); + final result = GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { @@ -146,8 +173,27 @@ class _$GSearchPlacesData_searchPlacesSerializer )! as String; break; - case 'message': - result.message = + case 'transcript': + result.transcript = + serializers.deserialize( + value, + specifiedType: const FullType(String), + )! + as String; + break; + case 'tags': + result.tags.replace( + serializers.deserialize( + value, + specifiedType: const FullType(BuiltList, const [ + const FullType(String), + ]), + )! + as BuiltList, + ); + break; + case 'summary': + result.summary = serializers.deserialize( value, specifiedType: const FullType(String), @@ -159,7 +205,9 @@ class _$GSearchPlacesData_searchPlacesSerializer serializers.deserialize( value, specifiedType: const FullType(BuiltList, const [ - const FullType(GSearchPlacesData_searchPlaces_places), + const FullType( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + ), ]), )! as BuiltList, @@ -172,20 +220,24 @@ class _$GSearchPlacesData_searchPlacesSerializer } } -class _$GSearchPlacesData_searchPlaces_placesSerializer - implements StructuredSerializer { +class _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesSerializer + implements + StructuredSerializer< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places + > { @override final Iterable types = const [ - GSearchPlacesData_searchPlaces_places, - _$GSearchPlacesData_searchPlaces_places, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, ]; @override - final String wireName = 'GSearchPlacesData_searchPlaces_places'; + final String wireName = + 'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places'; @override Iterable serialize( Serializers serializers, - GSearchPlacesData_searchPlaces_places object, { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places object, { FullType specifiedType = FullType.unspecified, }) { final result = [ @@ -243,7 +295,9 @@ class _$GSearchPlacesData_searchPlaces_placesSerializer serializers.serialize( object.experiences, specifiedType: const FullType(BuiltList, const [ - const FullType(GSearchPlacesData_searchPlaces_places_experiences), + const FullType( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, + ), ]), ), ]; @@ -304,12 +358,13 @@ class _$GSearchPlacesData_searchPlaces_placesSerializer } @override - GSearchPlacesData_searchPlaces_places deserialize( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places deserialize( Serializers serializers, Iterable serialized, { FullType specifiedType = FullType.unspecified, }) { - final result = GSearchPlacesData_searchPlaces_placesBuilder(); + final result = + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { @@ -457,7 +512,7 @@ class _$GSearchPlacesData_searchPlaces_placesSerializer value, specifiedType: const FullType(BuiltList, const [ const FullType( - GSearchPlacesData_searchPlaces_places_experiences, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, ), ]), )! @@ -471,23 +526,25 @@ class _$GSearchPlacesData_searchPlaces_placesSerializer } } -class _$GSearchPlacesData_searchPlaces_places_experiencesSerializer +class _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesSerializer implements StructuredSerializer< - GSearchPlacesData_searchPlaces_places_experiences + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences > { @override final Iterable types = const [ - GSearchPlacesData_searchPlaces_places_experiences, - _$GSearchPlacesData_searchPlaces_places_experiences, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, ]; @override - final String wireName = 'GSearchPlacesData_searchPlaces_places_experiences'; + final String wireName = + 'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences'; @override Iterable serialize( Serializers serializers, - GSearchPlacesData_searchPlaces_places_experiences object, { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + object, { FullType specifiedType = FullType.unspecified, }) { final result = [ @@ -514,12 +571,14 @@ class _$GSearchPlacesData_searchPlaces_places_experiencesSerializer } @override - GSearchPlacesData_searchPlaces_places_experiences deserialize( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + deserialize( Serializers serializers, Iterable serialized, { FullType specifiedType = FullType.unspecified, }) { - final result = GSearchPlacesData_searchPlaces_places_experiencesBuilder(); + final result = + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { @@ -566,114 +625,126 @@ class _$GSearchPlacesData_searchPlaces_places_experiencesSerializer } } -class _$GSearchPlacesData extends GSearchPlacesData { +class _$GRecommendPlacesByVoiceData extends GRecommendPlacesByVoiceData { @override final String G__typename; @override - final GSearchPlacesData_searchPlaces searchPlaces; + final GRecommendPlacesByVoiceData_recommendPlacesByVoice + recommendPlacesByVoice; - factory _$GSearchPlacesData([ - void Function(GSearchPlacesDataBuilder)? updates, - ]) => (GSearchPlacesDataBuilder()..update(updates))._build(); + factory _$GRecommendPlacesByVoiceData([ + void Function(GRecommendPlacesByVoiceDataBuilder)? updates, + ]) => (GRecommendPlacesByVoiceDataBuilder()..update(updates))._build(); - _$GSearchPlacesData._({required this.G__typename, required this.searchPlaces}) - : super._(); + _$GRecommendPlacesByVoiceData._({ + required this.G__typename, + required this.recommendPlacesByVoice, + }) : super._(); @override - GSearchPlacesData rebuild(void Function(GSearchPlacesDataBuilder) updates) => - (toBuilder()..update(updates)).build(); + GRecommendPlacesByVoiceData rebuild( + void Function(GRecommendPlacesByVoiceDataBuilder) updates, + ) => (toBuilder()..update(updates)).build(); @override - GSearchPlacesDataBuilder toBuilder() => - GSearchPlacesDataBuilder()..replace(this); + GRecommendPlacesByVoiceDataBuilder toBuilder() => + GRecommendPlacesByVoiceDataBuilder()..replace(this); @override bool operator ==(Object other) { if (identical(other, this)) return true; - return other is GSearchPlacesData && + return other is GRecommendPlacesByVoiceData && G__typename == other.G__typename && - searchPlaces == other.searchPlaces; + recommendPlacesByVoice == other.recommendPlacesByVoice; } @override int get hashCode { var _$hash = 0; _$hash = $jc(_$hash, G__typename.hashCode); - _$hash = $jc(_$hash, searchPlaces.hashCode); + _$hash = $jc(_$hash, recommendPlacesByVoice.hashCode); _$hash = $jf(_$hash); return _$hash; } @override String toString() { - return (newBuiltValueToStringHelper(r'GSearchPlacesData') + return (newBuiltValueToStringHelper(r'GRecommendPlacesByVoiceData') ..add('G__typename', G__typename) - ..add('searchPlaces', searchPlaces)) + ..add('recommendPlacesByVoice', recommendPlacesByVoice)) .toString(); } } -class GSearchPlacesDataBuilder - implements Builder { - _$GSearchPlacesData? _$v; +class GRecommendPlacesByVoiceDataBuilder + implements + Builder< + GRecommendPlacesByVoiceData, + GRecommendPlacesByVoiceDataBuilder + > { + _$GRecommendPlacesByVoiceData? _$v; String? _G__typename; String? get G__typename => _$this._G__typename; set G__typename(String? G__typename) => _$this._G__typename = G__typename; - GSearchPlacesData_searchPlacesBuilder? _searchPlaces; - GSearchPlacesData_searchPlacesBuilder get searchPlaces => - _$this._searchPlaces ??= GSearchPlacesData_searchPlacesBuilder(); - set searchPlaces(GSearchPlacesData_searchPlacesBuilder? searchPlaces) => - _$this._searchPlaces = searchPlaces; + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder? + _recommendPlacesByVoice; + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder + get recommendPlacesByVoice => _$this._recommendPlacesByVoice ??= + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder(); + set recommendPlacesByVoice( + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder? + recommendPlacesByVoice, + ) => _$this._recommendPlacesByVoice = recommendPlacesByVoice; - GSearchPlacesDataBuilder() { - GSearchPlacesData._initializeBuilder(this); + GRecommendPlacesByVoiceDataBuilder() { + GRecommendPlacesByVoiceData._initializeBuilder(this); } - GSearchPlacesDataBuilder get _$this { + GRecommendPlacesByVoiceDataBuilder get _$this { final $v = _$v; if ($v != null) { _G__typename = $v.G__typename; - _searchPlaces = $v.searchPlaces.toBuilder(); + _recommendPlacesByVoice = $v.recommendPlacesByVoice.toBuilder(); _$v = null; } return this; } @override - void replace(GSearchPlacesData other) { - _$v = other as _$GSearchPlacesData; + void replace(GRecommendPlacesByVoiceData other) { + _$v = other as _$GRecommendPlacesByVoiceData; } @override - void update(void Function(GSearchPlacesDataBuilder)? updates) { + void update(void Function(GRecommendPlacesByVoiceDataBuilder)? updates) { if (updates != null) updates(this); } @override - GSearchPlacesData build() => _build(); + GRecommendPlacesByVoiceData build() => _build(); - _$GSearchPlacesData _build() { - _$GSearchPlacesData _$result; + _$GRecommendPlacesByVoiceData _build() { + _$GRecommendPlacesByVoiceData _$result; try { _$result = _$v ?? - _$GSearchPlacesData._( + _$GRecommendPlacesByVoiceData._( G__typename: BuiltValueNullFieldError.checkNotNull( G__typename, - r'GSearchPlacesData', + r'GRecommendPlacesByVoiceData', 'G__typename', ), - searchPlaces: searchPlaces.build(), + recommendPlacesByVoice: recommendPlacesByVoice.build(), ); } catch (_) { late String _$failedField; try { - _$failedField = 'searchPlaces'; - searchPlaces.build(); + _$failedField = 'recommendPlacesByVoice'; + recommendPlacesByVoice.build(); } catch (e) { throw BuiltValueNestedFieldError( - r'GSearchPlacesData', + r'GRecommendPlacesByVoiceData', _$failedField, e.toString(), ); @@ -685,38 +756,54 @@ class GSearchPlacesDataBuilder } } -class _$GSearchPlacesData_searchPlaces extends GSearchPlacesData_searchPlaces { +class _$GRecommendPlacesByVoiceData_recommendPlacesByVoice + extends GRecommendPlacesByVoiceData_recommendPlacesByVoice { @override final String G__typename; @override - final String message; + final String transcript; @override - final BuiltList places; + final BuiltList tags; + @override + final String summary; + @override + final BuiltList + places; - factory _$GSearchPlacesData_searchPlaces([ - void Function(GSearchPlacesData_searchPlacesBuilder)? updates, - ]) => (GSearchPlacesData_searchPlacesBuilder()..update(updates))._build(); + factory _$GRecommendPlacesByVoiceData_recommendPlacesByVoice([ + void Function(GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder)? + updates, + ]) => + (GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder() + ..update(updates)) + ._build(); - _$GSearchPlacesData_searchPlaces._({ + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice._({ required this.G__typename, - required this.message, + required this.transcript, + required this.tags, + required this.summary, required this.places, }) : super._(); @override - GSearchPlacesData_searchPlaces rebuild( - void Function(GSearchPlacesData_searchPlacesBuilder) updates, + GRecommendPlacesByVoiceData_recommendPlacesByVoice rebuild( + void Function(GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder) + updates, ) => (toBuilder()..update(updates)).build(); @override - GSearchPlacesData_searchPlacesBuilder toBuilder() => - GSearchPlacesData_searchPlacesBuilder()..replace(this); + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder toBuilder() => + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder() + ..replace(this); @override bool operator ==(Object other) { if (identical(other, this)) return true; - return other is GSearchPlacesData_searchPlaces && + return other is GRecommendPlacesByVoiceData_recommendPlacesByVoice && G__typename == other.G__typename && - message == other.message && + transcript == other.transcript && + tags == other.tags && + summary == other.summary && places == other.places; } @@ -724,7 +811,9 @@ class _$GSearchPlacesData_searchPlaces extends GSearchPlacesData_searchPlaces { int get hashCode { var _$hash = 0; _$hash = $jc(_$hash, G__typename.hashCode); - _$hash = $jc(_$hash, message.hashCode); + _$hash = $jc(_$hash, transcript.hashCode); + _$hash = $jc(_$hash, tags.hashCode); + _$hash = $jc(_$hash, summary.hashCode); _$hash = $jc(_$hash, places.hashCode); _$hash = $jf(_$hash); return _$hash; @@ -732,45 +821,63 @@ class _$GSearchPlacesData_searchPlaces extends GSearchPlacesData_searchPlaces { @override String toString() { - return (newBuiltValueToStringHelper(r'GSearchPlacesData_searchPlaces') + return (newBuiltValueToStringHelper( + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice', + ) ..add('G__typename', G__typename) - ..add('message', message) + ..add('transcript', transcript) + ..add('tags', tags) + ..add('summary', summary) ..add('places', places)) .toString(); } } -class GSearchPlacesData_searchPlacesBuilder +class GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder implements Builder< - GSearchPlacesData_searchPlaces, - GSearchPlacesData_searchPlacesBuilder + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder > { - _$GSearchPlacesData_searchPlaces? _$v; + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice? _$v; String? _G__typename; String? get G__typename => _$this._G__typename; set G__typename(String? G__typename) => _$this._G__typename = G__typename; - String? _message; - String? get message => _$this._message; - set message(String? message) => _$this._message = message; + String? _transcript; + String? get transcript => _$this._transcript; + set transcript(String? transcript) => _$this._transcript = transcript; - ListBuilder? _places; - ListBuilder get places => - _$this._places ??= ListBuilder(); - set places(ListBuilder? places) => - _$this._places = places; + ListBuilder? _tags; + ListBuilder get tags => _$this._tags ??= ListBuilder(); + set tags(ListBuilder? tags) => _$this._tags = tags; - GSearchPlacesData_searchPlacesBuilder() { - GSearchPlacesData_searchPlaces._initializeBuilder(this); + String? _summary; + String? get summary => _$this._summary; + set summary(String? summary) => _$this._summary = summary; + + ListBuilder? + _places; + ListBuilder + get places => _$this._places ??= + ListBuilder(); + set places( + ListBuilder? + places, + ) => _$this._places = places; + + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder() { + GRecommendPlacesByVoiceData_recommendPlacesByVoice._initializeBuilder(this); } - GSearchPlacesData_searchPlacesBuilder get _$this { + GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder get _$this { final $v = _$v; if ($v != null) { _G__typename = $v.G__typename; - _message = $v.message; + _transcript = $v.transcript; + _tags = $v.tags.toBuilder(); + _summary = $v.summary; _places = $v.places.toBuilder(); _$v = null; } @@ -778,44 +885,56 @@ class GSearchPlacesData_searchPlacesBuilder } @override - void replace(GSearchPlacesData_searchPlaces other) { - _$v = other as _$GSearchPlacesData_searchPlaces; + void replace(GRecommendPlacesByVoiceData_recommendPlacesByVoice other) { + _$v = other as _$GRecommendPlacesByVoiceData_recommendPlacesByVoice; } @override - void update(void Function(GSearchPlacesData_searchPlacesBuilder)? updates) { + void update( + void Function(GRecommendPlacesByVoiceData_recommendPlacesByVoiceBuilder)? + updates, + ) { if (updates != null) updates(this); } @override - GSearchPlacesData_searchPlaces build() => _build(); + GRecommendPlacesByVoiceData_recommendPlacesByVoice build() => _build(); - _$GSearchPlacesData_searchPlaces _build() { - _$GSearchPlacesData_searchPlaces _$result; + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice _build() { + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice _$result; try { _$result = _$v ?? - _$GSearchPlacesData_searchPlaces._( + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice._( G__typename: BuiltValueNullFieldError.checkNotNull( G__typename, - r'GSearchPlacesData_searchPlaces', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice', 'G__typename', ), - message: BuiltValueNullFieldError.checkNotNull( - message, - r'GSearchPlacesData_searchPlaces', - 'message', + transcript: BuiltValueNullFieldError.checkNotNull( + transcript, + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice', + 'transcript', + ), + tags: tags.build(), + summary: BuiltValueNullFieldError.checkNotNull( + summary, + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice', + 'summary', ), places: places.build(), ); } catch (_) { late String _$failedField; try { + _$failedField = 'tags'; + tags.build(); + _$failedField = 'places'; places.build(); } catch (e) { throw BuiltValueNestedFieldError( - r'GSearchPlacesData_searchPlaces', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice', _$failedField, e.toString(), ); @@ -827,8 +946,8 @@ class GSearchPlacesData_searchPlacesBuilder } } -class _$GSearchPlacesData_searchPlaces_places - extends GSearchPlacesData_searchPlaces_places { +class _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places + extends GRecommendPlacesByVoiceData_recommendPlacesByVoice_places { @override final String G__typename; @override @@ -862,15 +981,22 @@ class _$GSearchPlacesData_searchPlaces_places @override final bool isFavorite; @override - final BuiltList + final BuiltList< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + > experiences; - factory _$GSearchPlacesData_searchPlaces_places([ - void Function(GSearchPlacesData_searchPlaces_placesBuilder)? updates, - ]) => (GSearchPlacesData_searchPlaces_placesBuilder()..update(updates)) - ._build(); + factory _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places([ + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder, + )? + updates, + ]) => + (GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder() + ..update(updates)) + ._build(); - _$GSearchPlacesData_searchPlaces_places._({ + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places._({ required this.G__typename, required this.id, required this.googlePlaceId, @@ -890,18 +1016,23 @@ class _$GSearchPlacesData_searchPlaces_places required this.experiences, }) : super._(); @override - GSearchPlacesData_searchPlaces_places rebuild( - void Function(GSearchPlacesData_searchPlaces_placesBuilder) updates, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places rebuild( + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder, + ) + updates, ) => (toBuilder()..update(updates)).build(); @override - GSearchPlacesData_searchPlaces_placesBuilder toBuilder() => - GSearchPlacesData_searchPlaces_placesBuilder()..replace(this); + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder + toBuilder() => + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder() + ..replace(this); @override bool operator ==(Object other) { if (identical(other, this)) return true; - return other is GSearchPlacesData_searchPlaces_places && + return other is GRecommendPlacesByVoiceData_recommendPlacesByVoice_places && G__typename == other.G__typename && id == other.id && googlePlaceId == other.googlePlaceId && @@ -948,7 +1079,7 @@ class _$GSearchPlacesData_searchPlaces_places @override String toString() { return (newBuiltValueToStringHelper( - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', ) ..add('G__typename', G__typename) ..add('id', id) @@ -971,13 +1102,13 @@ class _$GSearchPlacesData_searchPlaces_places } } -class GSearchPlacesData_searchPlaces_placesBuilder +class GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder implements Builder< - GSearchPlacesData_searchPlaces_places, - GSearchPlacesData_searchPlaces_placesBuilder + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder > { - _$GSearchPlacesData_searchPlaces_places? _$v; + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places? _$v; String? _G__typename; String? get G__typename => _$this._G__typename; @@ -1055,19 +1186,31 @@ class GSearchPlacesData_searchPlaces_placesBuilder bool? get isFavorite => _$this._isFavorite; set isFavorite(bool? isFavorite) => _$this._isFavorite = isFavorite; - ListBuilder? _experiences; - ListBuilder + ListBuilder< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + >? + _experiences; + ListBuilder< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + > get experiences => _$this._experiences ??= - ListBuilder(); + ListBuilder< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + >(); set experiences( - ListBuilder? experiences, + ListBuilder< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + >? + experiences, ) => _$this._experiences = experiences; - GSearchPlacesData_searchPlaces_placesBuilder() { - GSearchPlacesData_searchPlaces_places._initializeBuilder(this); + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder() { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places._initializeBuilder( + this, + ); } - GSearchPlacesData_searchPlaces_placesBuilder get _$this { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder get _$this { final $v = _$v; if ($v != null) { _G__typename = $v.G__typename; @@ -1093,54 +1236,59 @@ class GSearchPlacesData_searchPlaces_placesBuilder } @override - void replace(GSearchPlacesData_searchPlaces_places other) { - _$v = other as _$GSearchPlacesData_searchPlaces_places; + void replace( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places other, + ) { + _$v = other as _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places; } @override void update( - void Function(GSearchPlacesData_searchPlaces_placesBuilder)? updates, + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_placesBuilder, + )? + updates, ) { if (updates != null) updates(this); } @override - GSearchPlacesData_searchPlaces_places build() => _build(); + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places build() => _build(); - _$GSearchPlacesData_searchPlaces_places _build() { - _$GSearchPlacesData_searchPlaces_places _$result; + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places _build() { + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places _$result; try { _$result = _$v ?? - _$GSearchPlacesData_searchPlaces_places._( + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places._( G__typename: BuiltValueNullFieldError.checkNotNull( G__typename, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'G__typename', ), id: BuiltValueNullFieldError.checkNotNull( id, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'id', ), googlePlaceId: BuiltValueNullFieldError.checkNotNull( googlePlaceId, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'googlePlaceId', ), name: BuiltValueNullFieldError.checkNotNull( name, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'name', ), latitude: BuiltValueNullFieldError.checkNotNull( latitude, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'latitude', ), longitude: BuiltValueNullFieldError.checkNotNull( longitude, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'longitude', ), googlePrimaryType: googlePrimaryType, @@ -1154,7 +1302,7 @@ class GSearchPlacesData_searchPlaces_placesBuilder traits: traits.build(), isFavorite: BuiltValueNullFieldError.checkNotNull( isFavorite, - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', 'isFavorite', ), experiences: experiences.build(), @@ -1174,7 +1322,7 @@ class GSearchPlacesData_searchPlaces_placesBuilder experiences.build(); } catch (e) { throw BuiltValueNestedFieldError( - r'GSearchPlacesData_searchPlaces_places', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places', _$failedField, e.toString(), ); @@ -1186,8 +1334,9 @@ class GSearchPlacesData_searchPlaces_placesBuilder } } -class _$GSearchPlacesData_searchPlaces_places_experiences - extends GSearchPlacesData_searchPlaces_places_experiences { +class _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + extends + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences { @override final String G__typename; @override @@ -1197,34 +1346,41 @@ class _$GSearchPlacesData_searchPlaces_places_experiences @override final String createdAt; - factory _$GSearchPlacesData_searchPlaces_places_experiences([ - void Function(GSearchPlacesData_searchPlaces_places_experiencesBuilder)? + factory _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences([ + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder, + )? updates, ]) => - (GSearchPlacesData_searchPlaces_places_experiencesBuilder() + (GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder() ..update(updates)) ._build(); - _$GSearchPlacesData_searchPlaces_places_experiences._({ + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences._({ required this.G__typename, required this.id, required this.status, required this.createdAt, }) : super._(); @override - GSearchPlacesData_searchPlaces_places_experiences rebuild( - void Function(GSearchPlacesData_searchPlaces_places_experiencesBuilder) + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences rebuild( + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder, + ) updates, ) => (toBuilder()..update(updates)).build(); @override - GSearchPlacesData_searchPlaces_places_experiencesBuilder toBuilder() => - GSearchPlacesData_searchPlaces_places_experiencesBuilder()..replace(this); + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder + toBuilder() => + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder() + ..replace(this); @override bool operator ==(Object other) { if (identical(other, this)) return true; - return other is GSearchPlacesData_searchPlaces_places_experiences && + return other + is GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences && G__typename == other.G__typename && id == other.id && status == other.status && @@ -1245,7 +1401,7 @@ class _$GSearchPlacesData_searchPlaces_places_experiences @override String toString() { return (newBuiltValueToStringHelper( - r'GSearchPlacesData_searchPlaces_places_experiences', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences', ) ..add('G__typename', G__typename) ..add('id', id) @@ -1255,13 +1411,13 @@ class _$GSearchPlacesData_searchPlaces_places_experiences } } -class GSearchPlacesData_searchPlaces_places_experiencesBuilder +class GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder implements Builder< - GSearchPlacesData_searchPlaces_places_experiences, - GSearchPlacesData_searchPlaces_places_experiencesBuilder + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder > { - _$GSearchPlacesData_searchPlaces_places_experiences? _$v; + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences? _$v; String? _G__typename; String? get G__typename => _$this._G__typename; @@ -1279,11 +1435,14 @@ class GSearchPlacesData_searchPlaces_places_experiencesBuilder String? get createdAt => _$this._createdAt; set createdAt(String? createdAt) => _$this._createdAt = createdAt; - GSearchPlacesData_searchPlaces_places_experiencesBuilder() { - GSearchPlacesData_searchPlaces_places_experiences._initializeBuilder(this); + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder() { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences._initializeBuilder( + this, + ); } - GSearchPlacesData_searchPlaces_places_experiencesBuilder get _$this { + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder + get _$this { final $v = _$v; if ($v != null) { _G__typename = $v.G__typename; @@ -1296,43 +1455,51 @@ class GSearchPlacesData_searchPlaces_places_experiencesBuilder } @override - void replace(GSearchPlacesData_searchPlaces_places_experiences other) { - _$v = other as _$GSearchPlacesData_searchPlaces_places_experiences; + void replace( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences other, + ) { + _$v = + other + as _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences; } @override void update( - void Function(GSearchPlacesData_searchPlaces_places_experiencesBuilder)? + void Function( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiencesBuilder, + )? updates, ) { if (updates != null) updates(this); } @override - GSearchPlacesData_searchPlaces_places_experiences build() => _build(); + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + build() => _build(); - _$GSearchPlacesData_searchPlaces_places_experiences _build() { + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + _build() { final _$result = _$v ?? - _$GSearchPlacesData_searchPlaces_places_experiences._( + _$GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences._( G__typename: BuiltValueNullFieldError.checkNotNull( G__typename, - r'GSearchPlacesData_searchPlaces_places_experiences', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences', 'G__typename', ), id: BuiltValueNullFieldError.checkNotNull( id, - r'GSearchPlacesData_searchPlaces_places_experiences', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences', 'id', ), status: BuiltValueNullFieldError.checkNotNull( status, - r'GSearchPlacesData_searchPlaces_places_experiences', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences', 'status', ), createdAt: BuiltValueNullFieldError.checkNotNull( createdAt, - r'GSearchPlacesData_searchPlaces_places_experiences', + r'GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences', 'createdAt', ), ); diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.req.gql.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.dart similarity index 50% rename from lib/features/mapflow/data/graphql/__generated__/search_places.req.gql.dart rename to lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.dart index bf2a350..0281581 100644 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.req.gql.dart +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.dart @@ -6,35 +6,39 @@ import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; import 'package:ferry_exec/ferry_exec.dart' as _i1; import 'package:gql_exec/gql_exec.dart' as _i4; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/search_places.ast.gql.dart' +import 'package:mapflow/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.ast.gql.dart' as _i5; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/search_places.data.gql.dart' +import 'package:mapflow/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.dart' as _i2; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/search_places.var.gql.dart' +import 'package:mapflow/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.dart' as _i3; import 'package:mapflow/features/mapflow/data/graphql/__generated__/serializers.gql.dart' as _i6; -part 'search_places.req.gql.g.dart'; +part 'recommend_places_by_voice.req.gql.g.dart'; -abstract class GSearchPlacesReq +abstract class GRecommendPlacesByVoiceReq implements - Built, - _i1.OperationRequest<_i2.GSearchPlacesData, _i3.GSearchPlacesVars> { - GSearchPlacesReq._(); + Built, + _i1.OperationRequest< + _i2.GRecommendPlacesByVoiceData, + _i3.GRecommendPlacesByVoiceVars + > { + GRecommendPlacesByVoiceReq._(); - factory GSearchPlacesReq([void Function(GSearchPlacesReqBuilder b) updates]) = - _$GSearchPlacesReq; + factory GRecommendPlacesByVoiceReq([ + void Function(GRecommendPlacesByVoiceReqBuilder b) updates, + ]) = _$GRecommendPlacesByVoiceReq; - static void _initializeBuilder(GSearchPlacesReqBuilder b) => b + static void _initializeBuilder(GRecommendPlacesByVoiceReqBuilder b) => b ..operation = _i4.Operation( document: _i5.document, - operationName: 'SearchPlaces', + operationName: 'RecommendPlacesByVoice', ) ..executeOnListen = true; @override - _i3.GSearchPlacesVars get vars; + _i3.GRecommendPlacesByVoiceVars get vars; @override _i4.Operation get operation; @override @@ -48,13 +52,13 @@ abstract class GSearchPlacesReq String? get requestId; @override @BuiltValueField(serialize: false) - _i2.GSearchPlacesData? Function( - _i2.GSearchPlacesData?, - _i2.GSearchPlacesData?, + _i2.GRecommendPlacesByVoiceData? Function( + _i2.GRecommendPlacesByVoiceData?, + _i2.GRecommendPlacesByVoiceData?, )? get updateResult; @override - _i2.GSearchPlacesData? get optimisticResponse; + _i2.GRecommendPlacesByVoiceData? get optimisticResponse; @override String? get updateCacheHandlerKey; @override @@ -67,27 +71,35 @@ abstract class GSearchPlacesReq @BuiltValueField(serialize: false) _i4.Context? get context; @override - _i2.GSearchPlacesData? parseData(Map json) => - _i2.GSearchPlacesData.fromJson(json); + _i2.GRecommendPlacesByVoiceData? parseData(Map json) => + _i2.GRecommendPlacesByVoiceData.fromJson(json); @override Map varsToJson() => vars.toJson(); @override - Map dataToJson(_i2.GSearchPlacesData data) => data.toJson(); + Map dataToJson(_i2.GRecommendPlacesByVoiceData data) => + data.toJson(); @override - _i1.OperationRequest<_i2.GSearchPlacesData, _i3.GSearchPlacesVars> + _i1.OperationRequest< + _i2.GRecommendPlacesByVoiceData, + _i3.GRecommendPlacesByVoiceVars + > transformOperation(_i4.Operation Function(_i4.Operation) transform) => this.rebuild((b) => b..operation = transform(operation)); - static Serializer get serializer => - _$gSearchPlacesReqSerializer; + static Serializer get serializer => + _$gRecommendPlacesByVoiceReqSerializer; Map toJson() => - (_i6.serializers.serializeWith(GSearchPlacesReq.serializer, this) + (_i6.serializers.serializeWith( + GRecommendPlacesByVoiceReq.serializer, + this, + ) as Map); - static GSearchPlacesReq? fromJson(Map json) => - _i6.serializers.deserializeWith(GSearchPlacesReq.serializer, json); + static GRecommendPlacesByVoiceReq? fromJson(Map json) => _i6 + .serializers + .deserializeWith(GRecommendPlacesByVoiceReq.serializer, json); } diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.req.gql.g.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.g.dart similarity index 73% rename from lib/features/mapflow/data/graphql/__generated__/search_places.req.gql.g.dart rename to lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.g.dart index 5f0af05..9ef0bea 100644 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.req.gql.g.dart +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.g.dart @@ -1,32 +1,35 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -part of 'search_places.req.gql.dart'; +part of 'recommend_places_by_voice.req.gql.dart'; // ************************************************************************** // BuiltValueGenerator // ************************************************************************** -Serializer _$gSearchPlacesReqSerializer = - _$GSearchPlacesReqSerializer(); +Serializer _$gRecommendPlacesByVoiceReqSerializer = + _$GRecommendPlacesByVoiceReqSerializer(); -class _$GSearchPlacesReqSerializer - implements StructuredSerializer { +class _$GRecommendPlacesByVoiceReqSerializer + implements StructuredSerializer { @override - final Iterable types = const [GSearchPlacesReq, _$GSearchPlacesReq]; + final Iterable types = const [ + GRecommendPlacesByVoiceReq, + _$GRecommendPlacesByVoiceReq, + ]; @override - final String wireName = 'GSearchPlacesReq'; + final String wireName = 'GRecommendPlacesByVoiceReq'; @override Iterable serialize( Serializers serializers, - GSearchPlacesReq object, { + GRecommendPlacesByVoiceReq object, { FullType specifiedType = FullType.unspecified, }) { final result = [ 'vars', serializers.serialize( object.vars, - specifiedType: const FullType(_i3.GSearchPlacesVars), + specifiedType: const FullType(_i3.GRecommendPlacesByVoiceVars), ), 'operation', serializers.serialize( @@ -55,7 +58,7 @@ class _$GSearchPlacesReqSerializer ..add( serializers.serialize( value, - specifiedType: const FullType(_i2.GSearchPlacesData), + specifiedType: const FullType(_i2.GRecommendPlacesByVoiceData), ), ); } @@ -96,12 +99,12 @@ class _$GSearchPlacesReqSerializer } @override - GSearchPlacesReq deserialize( + GRecommendPlacesByVoiceReq deserialize( Serializers serializers, Iterable serialized, { FullType specifiedType = FullType.unspecified, }) { - final result = GSearchPlacesReqBuilder(); + final result = GRecommendPlacesByVoiceReqBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { @@ -113,9 +116,11 @@ class _$GSearchPlacesReqSerializer result.vars.replace( serializers.deserialize( value, - specifiedType: const FullType(_i3.GSearchPlacesVars), + specifiedType: const FullType( + _i3.GRecommendPlacesByVoiceVars, + ), )! - as _i3.GSearchPlacesVars, + as _i3.GRecommendPlacesByVoiceVars, ); break; case 'operation': @@ -138,9 +143,11 @@ class _$GSearchPlacesReqSerializer result.optimisticResponse.replace( serializers.deserialize( value, - specifiedType: const FullType(_i2.GSearchPlacesData), + specifiedType: const FullType( + _i2.GRecommendPlacesByVoiceData, + ), )! - as _i2.GSearchPlacesData, + as _i2.GRecommendPlacesByVoiceData, ); break; case 'updateCacheHandlerKey': @@ -185,21 +192,21 @@ class _$GSearchPlacesReqSerializer } } -class _$GSearchPlacesReq extends GSearchPlacesReq { +class _$GRecommendPlacesByVoiceReq extends GRecommendPlacesByVoiceReq { @override - final _i3.GSearchPlacesVars vars; + final _i3.GRecommendPlacesByVoiceVars vars; @override final _i4.Operation operation; @override final String? requestId; @override - final _i2.GSearchPlacesData? Function( - _i2.GSearchPlacesData?, - _i2.GSearchPlacesData?, + final _i2.GRecommendPlacesByVoiceData? Function( + _i2.GRecommendPlacesByVoiceData?, + _i2.GRecommendPlacesByVoiceData?, )? updateResult; @override - final _i2.GSearchPlacesData? optimisticResponse; + final _i2.GRecommendPlacesByVoiceData? optimisticResponse; @override final String? updateCacheHandlerKey; @override @@ -211,11 +218,11 @@ class _$GSearchPlacesReq extends GSearchPlacesReq { @override final _i4.Context? context; - factory _$GSearchPlacesReq([ - void Function(GSearchPlacesReqBuilder)? updates, - ]) => (GSearchPlacesReqBuilder()..update(updates))._build(); + factory _$GRecommendPlacesByVoiceReq([ + void Function(GRecommendPlacesByVoiceReqBuilder)? updates, + ]) => (GRecommendPlacesByVoiceReqBuilder()..update(updates))._build(); - _$GSearchPlacesReq._({ + _$GRecommendPlacesByVoiceReq._({ required this.vars, required this.operation, this.requestId, @@ -228,17 +235,18 @@ class _$GSearchPlacesReq extends GSearchPlacesReq { this.context, }) : super._(); @override - GSearchPlacesReq rebuild(void Function(GSearchPlacesReqBuilder) updates) => - (toBuilder()..update(updates)).build(); + GRecommendPlacesByVoiceReq rebuild( + void Function(GRecommendPlacesByVoiceReqBuilder) updates, + ) => (toBuilder()..update(updates)).build(); @override - GSearchPlacesReqBuilder toBuilder() => - GSearchPlacesReqBuilder()..replace(this); + GRecommendPlacesByVoiceReqBuilder toBuilder() => + GRecommendPlacesByVoiceReqBuilder()..replace(this); @override bool operator ==(Object other) { if (identical(other, this)) return true; - return other is GSearchPlacesReq && + return other is GRecommendPlacesByVoiceReq && vars == other.vars && operation == other.operation && requestId == other.requestId && @@ -270,7 +278,7 @@ class _$GSearchPlacesReq extends GSearchPlacesReq { @override String toString() { - return (newBuiltValueToStringHelper(r'GSearchPlacesReq') + return (newBuiltValueToStringHelper(r'GRecommendPlacesByVoiceReq') ..add('vars', vars) ..add('operation', operation) ..add('requestId', requestId) @@ -285,14 +293,15 @@ class _$GSearchPlacesReq extends GSearchPlacesReq { } } -class GSearchPlacesReqBuilder - implements Builder { - _$GSearchPlacesReq? _$v; +class GRecommendPlacesByVoiceReqBuilder + implements + Builder { + _$GRecommendPlacesByVoiceReq? _$v; - _i3.GSearchPlacesVarsBuilder? _vars; - _i3.GSearchPlacesVarsBuilder get vars => - _$this._vars ??= _i3.GSearchPlacesVarsBuilder(); - set vars(_i3.GSearchPlacesVarsBuilder? vars) => _$this._vars = vars; + _i3.GRecommendPlacesByVoiceVarsBuilder? _vars; + _i3.GRecommendPlacesByVoiceVarsBuilder get vars => + _$this._vars ??= _i3.GRecommendPlacesByVoiceVarsBuilder(); + set vars(_i3.GRecommendPlacesByVoiceVarsBuilder? vars) => _$this._vars = vars; _i4.Operation? _operation; _i4.Operation? get operation => _$this._operation; @@ -302,29 +311,30 @@ class GSearchPlacesReqBuilder String? get requestId => _$this._requestId; set requestId(String? requestId) => _$this._requestId = requestId; - _i2.GSearchPlacesData? Function( - _i2.GSearchPlacesData?, - _i2.GSearchPlacesData?, + _i2.GRecommendPlacesByVoiceData? Function( + _i2.GRecommendPlacesByVoiceData?, + _i2.GRecommendPlacesByVoiceData?, )? _updateResult; - _i2.GSearchPlacesData? Function( - _i2.GSearchPlacesData?, - _i2.GSearchPlacesData?, + _i2.GRecommendPlacesByVoiceData? Function( + _i2.GRecommendPlacesByVoiceData?, + _i2.GRecommendPlacesByVoiceData?, )? get updateResult => _$this._updateResult; set updateResult( - _i2.GSearchPlacesData? Function( - _i2.GSearchPlacesData?, - _i2.GSearchPlacesData?, + _i2.GRecommendPlacesByVoiceData? Function( + _i2.GRecommendPlacesByVoiceData?, + _i2.GRecommendPlacesByVoiceData?, )? updateResult, ) => _$this._updateResult = updateResult; - _i2.GSearchPlacesDataBuilder? _optimisticResponse; - _i2.GSearchPlacesDataBuilder get optimisticResponse => - _$this._optimisticResponse ??= _i2.GSearchPlacesDataBuilder(); - set optimisticResponse(_i2.GSearchPlacesDataBuilder? optimisticResponse) => - _$this._optimisticResponse = optimisticResponse; + _i2.GRecommendPlacesByVoiceDataBuilder? _optimisticResponse; + _i2.GRecommendPlacesByVoiceDataBuilder get optimisticResponse => + _$this._optimisticResponse ??= _i2.GRecommendPlacesByVoiceDataBuilder(); + set optimisticResponse( + _i2.GRecommendPlacesByVoiceDataBuilder? optimisticResponse, + ) => _$this._optimisticResponse = optimisticResponse; String? _updateCacheHandlerKey; String? get updateCacheHandlerKey => _$this._updateCacheHandlerKey; @@ -352,11 +362,11 @@ class GSearchPlacesReqBuilder _i4.Context? get context => _$this._context; set context(_i4.Context? context) => _$this._context = context; - GSearchPlacesReqBuilder() { - GSearchPlacesReq._initializeBuilder(this); + GRecommendPlacesByVoiceReqBuilder() { + GRecommendPlacesByVoiceReq._initializeBuilder(this); } - GSearchPlacesReqBuilder get _$this { + GRecommendPlacesByVoiceReqBuilder get _$this { final $v = _$v; if ($v != null) { _vars = $v.vars.toBuilder(); @@ -375,28 +385,28 @@ class GSearchPlacesReqBuilder } @override - void replace(GSearchPlacesReq other) { - _$v = other as _$GSearchPlacesReq; + void replace(GRecommendPlacesByVoiceReq other) { + _$v = other as _$GRecommendPlacesByVoiceReq; } @override - void update(void Function(GSearchPlacesReqBuilder)? updates) { + void update(void Function(GRecommendPlacesByVoiceReqBuilder)? updates) { if (updates != null) updates(this); } @override - GSearchPlacesReq build() => _build(); + GRecommendPlacesByVoiceReq build() => _build(); - _$GSearchPlacesReq _build() { - _$GSearchPlacesReq _$result; + _$GRecommendPlacesByVoiceReq _build() { + _$GRecommendPlacesByVoiceReq _$result; try { _$result = _$v ?? - _$GSearchPlacesReq._( + _$GRecommendPlacesByVoiceReq._( vars: vars.build(), operation: BuiltValueNullFieldError.checkNotNull( operation, - r'GSearchPlacesReq', + r'GRecommendPlacesByVoiceReq', 'operation', ), requestId: requestId, @@ -407,7 +417,7 @@ class GSearchPlacesReqBuilder fetchPolicy: fetchPolicy, executeOnListen: BuiltValueNullFieldError.checkNotNull( executeOnListen, - r'GSearchPlacesReq', + r'GRecommendPlacesByVoiceReq', 'executeOnListen', ), context: context, @@ -422,7 +432,7 @@ class GSearchPlacesReqBuilder _optimisticResponse?.build(); } catch (e) { throw BuiltValueNestedFieldError( - r'GSearchPlacesReq', + r'GRecommendPlacesByVoiceReq', _$failedField, e.toString(), ); diff --git a/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.dart new file mode 100644 index 0000000..e1d084f --- /dev/null +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.dart @@ -0,0 +1,37 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint + +// ignore_for_file: no_leading_underscores_for_library_prefixes +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart' + as _i1; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/serializers.gql.dart' + as _i2; + +part 'recommend_places_by_voice.var.gql.g.dart'; + +abstract class GRecommendPlacesByVoiceVars + implements + Built { + GRecommendPlacesByVoiceVars._(); + + factory GRecommendPlacesByVoiceVars([ + void Function(GRecommendPlacesByVoiceVarsBuilder b) updates, + ]) = _$GRecommendPlacesByVoiceVars; + + _i1.GVoicePlaceRecommendationsInput get input; + static Serializer get serializer => + _$gRecommendPlacesByVoiceVarsSerializer; + + Map toJson() => + (_i2.serializers.serializeWith( + GRecommendPlacesByVoiceVars.serializer, + this, + ) + as Map); + + static GRecommendPlacesByVoiceVars? fromJson(Map json) => _i2 + .serializers + .deserializeWith(GRecommendPlacesByVoiceVars.serializer, json); +} diff --git a/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.g.dart b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.g.dart new file mode 100644 index 0000000..0ebd513 --- /dev/null +++ b/lib/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.g.dart @@ -0,0 +1,173 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'recommend_places_by_voice.var.gql.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer +_$gRecommendPlacesByVoiceVarsSerializer = + _$GRecommendPlacesByVoiceVarsSerializer(); + +class _$GRecommendPlacesByVoiceVarsSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + GRecommendPlacesByVoiceVars, + _$GRecommendPlacesByVoiceVars, + ]; + @override + final String wireName = 'GRecommendPlacesByVoiceVars'; + + @override + Iterable serialize( + Serializers serializers, + GRecommendPlacesByVoiceVars object, { + FullType specifiedType = FullType.unspecified, + }) { + final result = [ + 'input', + serializers.serialize( + object.input, + specifiedType: const FullType(_i1.GVoicePlaceRecommendationsInput), + ), + ]; + + return result; + } + + @override + GRecommendPlacesByVoiceVars deserialize( + Serializers serializers, + Iterable serialized, { + FullType specifiedType = FullType.unspecified, + }) { + final result = GRecommendPlacesByVoiceVarsBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'input': + result.input.replace( + serializers.deserialize( + value, + specifiedType: const FullType( + _i1.GVoicePlaceRecommendationsInput, + ), + )! + as _i1.GVoicePlaceRecommendationsInput, + ); + break; + } + } + + return result.build(); + } +} + +class _$GRecommendPlacesByVoiceVars extends GRecommendPlacesByVoiceVars { + @override + final _i1.GVoicePlaceRecommendationsInput input; + + factory _$GRecommendPlacesByVoiceVars([ + void Function(GRecommendPlacesByVoiceVarsBuilder)? updates, + ]) => (GRecommendPlacesByVoiceVarsBuilder()..update(updates))._build(); + + _$GRecommendPlacesByVoiceVars._({required this.input}) : super._(); + @override + GRecommendPlacesByVoiceVars rebuild( + void Function(GRecommendPlacesByVoiceVarsBuilder) updates, + ) => (toBuilder()..update(updates)).build(); + + @override + GRecommendPlacesByVoiceVarsBuilder toBuilder() => + GRecommendPlacesByVoiceVarsBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is GRecommendPlacesByVoiceVars && input == other.input; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, input.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper( + r'GRecommendPlacesByVoiceVars', + )..add('input', input)).toString(); + } +} + +class GRecommendPlacesByVoiceVarsBuilder + implements + Builder< + GRecommendPlacesByVoiceVars, + GRecommendPlacesByVoiceVarsBuilder + > { + _$GRecommendPlacesByVoiceVars? _$v; + + _i1.GVoicePlaceRecommendationsInputBuilder? _input; + _i1.GVoicePlaceRecommendationsInputBuilder get input => + _$this._input ??= _i1.GVoicePlaceRecommendationsInputBuilder(); + set input(_i1.GVoicePlaceRecommendationsInputBuilder? input) => + _$this._input = input; + + GRecommendPlacesByVoiceVarsBuilder(); + + GRecommendPlacesByVoiceVarsBuilder get _$this { + final $v = _$v; + if ($v != null) { + _input = $v.input.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(GRecommendPlacesByVoiceVars other) { + _$v = other as _$GRecommendPlacesByVoiceVars; + } + + @override + void update(void Function(GRecommendPlacesByVoiceVarsBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + GRecommendPlacesByVoiceVars build() => _build(); + + _$GRecommendPlacesByVoiceVars _build() { + _$GRecommendPlacesByVoiceVars _$result; + try { + _$result = _$v ?? _$GRecommendPlacesByVoiceVars._(input: input.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'input'; + input.build(); + } catch (e) { + throw BuiltValueNestedFieldError( + r'GRecommendPlacesByVoiceVars', + _$failedField, + e.toString(), + ); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/lib/features/mapflow/data/graphql/__generated__/schema.ast.gql.dart b/lib/features/mapflow/data/graphql/__generated__/schema.ast.gql.dart index 94bedfd..95423ac 100644 --- a/lib/features/mapflow/data/graphql/__generated__/schema.ast.gql.dart +++ b/lib/features/mapflow/data/graphql/__generated__/schema.ast.gql.dart @@ -569,12 +569,21 @@ const NearbyPlacesInput = _i1.InputObjectTypeDefinitionNode( ), ], ); -const SearchPlacesInput = _i1.InputObjectTypeDefinitionNode( - name: _i1.NameNode(value: 'SearchPlacesInput'), +const VoicePlaceRecommendationsInput = _i1.InputObjectTypeDefinitionNode( + name: _i1.NameNode(value: 'VoicePlaceRecommendationsInput'), directives: [], fields: [ _i1.InputValueDefinitionNode( - name: _i1.NameNode(value: 'query'), + name: _i1.NameNode(value: 'audioContentBase64'), + directives: [], + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'String'), + isNonNull: true, + ), + defaultValue: null, + ), + _i1.InputValueDefinitionNode( + name: _i1.NameNode(value: 'audioMimeType'), directives: [], type: _i1.NamedTypeNode( name: _i1.NameNode(value: 'String'), @@ -743,13 +752,34 @@ const TelegramBotLoginSession = _i1.ObjectTypeDefinitionNode( ), ], ); -const SearchPlacesPayload = _i1.ObjectTypeDefinitionNode( - name: _i1.NameNode(value: 'SearchPlacesPayload'), +const VoicePlaceRecommendationsPayload = _i1.ObjectTypeDefinitionNode( + name: _i1.NameNode(value: 'VoicePlaceRecommendationsPayload'), directives: [], interfaces: [], fields: [ _i1.FieldDefinitionNode( - name: _i1.NameNode(value: 'message'), + name: _i1.NameNode(value: 'transcript'), + directives: [], + args: [], + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'String'), + isNonNull: true, + ), + ), + _i1.FieldDefinitionNode( + name: _i1.NameNode(value: 'tags'), + directives: [], + args: [], + type: _i1.ListTypeNode( + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'String'), + isNonNull: true, + ), + isNonNull: true, + ), + ), + _i1.FieldDefinitionNode( + name: _i1.NameNode(value: 'summary'), directives: [], args: [], type: _i1.NamedTypeNode( @@ -840,25 +870,6 @@ const Query = _i1.ObjectTypeDefinitionNode( isNonNull: true, ), ), - _i1.FieldDefinitionNode( - name: _i1.NameNode(value: 'searchPlaces'), - directives: [], - args: [ - _i1.InputValueDefinitionNode( - name: _i1.NameNode(value: 'input'), - directives: [], - type: _i1.NamedTypeNode( - name: _i1.NameNode(value: 'SearchPlacesInput'), - isNonNull: true, - ), - defaultValue: null, - ), - ], - type: _i1.NamedTypeNode( - name: _i1.NameNode(value: 'SearchPlacesPayload'), - isNonNull: true, - ), - ), _i1.FieldDefinitionNode( name: _i1.NameNode(value: 'voiceExperiences'), directives: [], @@ -963,6 +974,25 @@ const Mutation = _i1.ObjectTypeDefinitionNode( isNonNull: true, ), ), + _i1.FieldDefinitionNode( + name: _i1.NameNode(value: 'recommendPlacesByVoice'), + directives: [], + args: [ + _i1.InputValueDefinitionNode( + name: _i1.NameNode(value: 'input'), + directives: [], + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'VoicePlaceRecommendationsInput'), + isNonNull: true, + ), + defaultValue: null, + ), + ], + type: _i1.NamedTypeNode( + name: _i1.NameNode(value: 'VoicePlaceRecommendationsPayload'), + isNonNull: true, + ), + ), _i1.FieldDefinitionNode( name: _i1.NameNode(value: 'addFavoritePlace'), directives: [], @@ -1012,13 +1042,13 @@ const document = _i1.DocumentNode( VoiceExperience, CreateVoiceExperienceInput, NearbyPlacesInput, - SearchPlacesInput, + VoicePlaceRecommendationsInput, AuthenticateTelegramInput, AuthenticateTelegramLoginInput, AuthPayload, TelegramBotLoginPayload, TelegramBotLoginSession, - SearchPlacesPayload, + VoicePlaceRecommendationsPayload, Query, Mutation, ], diff --git a/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart b/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart index f4b5818..4c71207 100644 --- a/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart +++ b/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart @@ -100,24 +100,35 @@ abstract class GNearbyPlacesInput _i2.serializers.deserializeWith(GNearbyPlacesInput.serializer, json); } -abstract class GSearchPlacesInput - implements Built { - GSearchPlacesInput._(); +abstract class GVoicePlaceRecommendationsInput + implements + Built< + GVoicePlaceRecommendationsInput, + GVoicePlaceRecommendationsInputBuilder + > { + GVoicePlaceRecommendationsInput._(); - factory GSearchPlacesInput([ - void Function(GSearchPlacesInputBuilder b) updates, - ]) = _$GSearchPlacesInput; + factory GVoicePlaceRecommendationsInput([ + void Function(GVoicePlaceRecommendationsInputBuilder b) updates, + ]) = _$GVoicePlaceRecommendationsInput; - String get query; - static Serializer get serializer => - _$gSearchPlacesInputSerializer; + String get audioContentBase64; + String get audioMimeType; + static Serializer get serializer => + _$gVoicePlaceRecommendationsInputSerializer; Map toJson() => - (_i2.serializers.serializeWith(GSearchPlacesInput.serializer, this) + (_i2.serializers.serializeWith( + GVoicePlaceRecommendationsInput.serializer, + this, + ) as Map); - static GSearchPlacesInput? fromJson(Map json) => - _i2.serializers.deserializeWith(GSearchPlacesInput.serializer, json); + static GVoicePlaceRecommendationsInput? fromJson(Map json) => + _i2.serializers.deserializeWith( + GVoicePlaceRecommendationsInput.serializer, + json, + ); } abstract class GAuthenticateTelegramInput diff --git a/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.g.dart b/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.g.dart index 0056f6e..b6be7b8 100644 --- a/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.g.dart +++ b/lib/features/mapflow/data/graphql/__generated__/schema.schema.gql.g.dart @@ -55,8 +55,9 @@ _$gCreateVoiceExperienceInputSerializer = _$GCreateVoiceExperienceInputSerializer(); Serializer _$gNearbyPlacesInputSerializer = _$GNearbyPlacesInputSerializer(); -Serializer _$gSearchPlacesInputSerializer = - _$GSearchPlacesInputSerializer(); +Serializer +_$gVoicePlaceRecommendationsInputSerializer = + _$GVoicePlaceRecommendationsInputSerializer(); Serializer _$gAuthenticateTelegramInputSerializer = _$GAuthenticateTelegramInputSerializer(); Serializer @@ -410,23 +411,31 @@ class _$GNearbyPlacesInputSerializer } } -class _$GSearchPlacesInputSerializer - implements StructuredSerializer { +class _$GVoicePlaceRecommendationsInputSerializer + implements StructuredSerializer { @override - final Iterable types = const [GSearchPlacesInput, _$GSearchPlacesInput]; + final Iterable types = const [ + GVoicePlaceRecommendationsInput, + _$GVoicePlaceRecommendationsInput, + ]; @override - final String wireName = 'GSearchPlacesInput'; + final String wireName = 'GVoicePlaceRecommendationsInput'; @override Iterable serialize( Serializers serializers, - GSearchPlacesInput object, { + GVoicePlaceRecommendationsInput object, { FullType specifiedType = FullType.unspecified, }) { final result = [ - 'query', + 'audioContentBase64', serializers.serialize( - object.query, + object.audioContentBase64, + specifiedType: const FullType(String), + ), + 'audioMimeType', + serializers.serialize( + object.audioMimeType, specifiedType: const FullType(String), ), ]; @@ -435,12 +444,12 @@ class _$GSearchPlacesInputSerializer } @override - GSearchPlacesInput deserialize( + GVoicePlaceRecommendationsInput deserialize( Serializers serializers, Iterable serialized, { FullType specifiedType = FullType.unspecified, }) { - final result = GSearchPlacesInputBuilder(); + final result = GVoicePlaceRecommendationsInputBuilder(); final iterator = serialized.iterator; while (iterator.moveNext()) { @@ -448,8 +457,16 @@ class _$GSearchPlacesInputSerializer iterator.moveNext(); final Object? value = iterator.current; switch (key) { - case 'query': - result.query = + case 'audioContentBase64': + result.audioContentBase64 = + serializers.deserialize( + value, + specifiedType: const FullType(String), + )! + as String; + break; + case 'audioMimeType': + result.audioMimeType = serializers.deserialize( value, specifiedType: const FullType(String), @@ -1078,86 +1095,112 @@ class GNearbyPlacesInputBuilder } } -class _$GSearchPlacesInput extends GSearchPlacesInput { +class _$GVoicePlaceRecommendationsInput + extends GVoicePlaceRecommendationsInput { @override - final String query; - - factory _$GSearchPlacesInput([ - void Function(GSearchPlacesInputBuilder)? updates, - ]) => (GSearchPlacesInputBuilder()..update(updates))._build(); - - _$GSearchPlacesInput._({required this.query}) : super._(); + final String audioContentBase64; @override - GSearchPlacesInput rebuild( - void Function(GSearchPlacesInputBuilder) updates, + final String audioMimeType; + + factory _$GVoicePlaceRecommendationsInput([ + void Function(GVoicePlaceRecommendationsInputBuilder)? updates, + ]) => (GVoicePlaceRecommendationsInputBuilder()..update(updates))._build(); + + _$GVoicePlaceRecommendationsInput._({ + required this.audioContentBase64, + required this.audioMimeType, + }) : super._(); + @override + GVoicePlaceRecommendationsInput rebuild( + void Function(GVoicePlaceRecommendationsInputBuilder) updates, ) => (toBuilder()..update(updates)).build(); @override - GSearchPlacesInputBuilder toBuilder() => - GSearchPlacesInputBuilder()..replace(this); + GVoicePlaceRecommendationsInputBuilder toBuilder() => + GVoicePlaceRecommendationsInputBuilder()..replace(this); @override bool operator ==(Object other) { if (identical(other, this)) return true; - return other is GSearchPlacesInput && query == other.query; + return other is GVoicePlaceRecommendationsInput && + audioContentBase64 == other.audioContentBase64 && + audioMimeType == other.audioMimeType; } @override int get hashCode { var _$hash = 0; - _$hash = $jc(_$hash, query.hashCode); + _$hash = $jc(_$hash, audioContentBase64.hashCode); + _$hash = $jc(_$hash, audioMimeType.hashCode); _$hash = $jf(_$hash); return _$hash; } @override String toString() { - return (newBuiltValueToStringHelper( - r'GSearchPlacesInput', - )..add('query', query)).toString(); + return (newBuiltValueToStringHelper(r'GVoicePlaceRecommendationsInput') + ..add('audioContentBase64', audioContentBase64) + ..add('audioMimeType', audioMimeType)) + .toString(); } } -class GSearchPlacesInputBuilder - implements Builder { - _$GSearchPlacesInput? _$v; +class GVoicePlaceRecommendationsInputBuilder + implements + Builder< + GVoicePlaceRecommendationsInput, + GVoicePlaceRecommendationsInputBuilder + > { + _$GVoicePlaceRecommendationsInput? _$v; - String? _query; - String? get query => _$this._query; - set query(String? query) => _$this._query = query; + String? _audioContentBase64; + String? get audioContentBase64 => _$this._audioContentBase64; + set audioContentBase64(String? audioContentBase64) => + _$this._audioContentBase64 = audioContentBase64; - GSearchPlacesInputBuilder(); + String? _audioMimeType; + String? get audioMimeType => _$this._audioMimeType; + set audioMimeType(String? audioMimeType) => + _$this._audioMimeType = audioMimeType; - GSearchPlacesInputBuilder get _$this { + GVoicePlaceRecommendationsInputBuilder(); + + GVoicePlaceRecommendationsInputBuilder get _$this { final $v = _$v; if ($v != null) { - _query = $v.query; + _audioContentBase64 = $v.audioContentBase64; + _audioMimeType = $v.audioMimeType; _$v = null; } return this; } @override - void replace(GSearchPlacesInput other) { - _$v = other as _$GSearchPlacesInput; + void replace(GVoicePlaceRecommendationsInput other) { + _$v = other as _$GVoicePlaceRecommendationsInput; } @override - void update(void Function(GSearchPlacesInputBuilder)? updates) { + void update(void Function(GVoicePlaceRecommendationsInputBuilder)? updates) { if (updates != null) updates(this); } @override - GSearchPlacesInput build() => _build(); + GVoicePlaceRecommendationsInput build() => _build(); - _$GSearchPlacesInput _build() { + _$GVoicePlaceRecommendationsInput _build() { final _$result = _$v ?? - _$GSearchPlacesInput._( - query: BuiltValueNullFieldError.checkNotNull( - query, - r'GSearchPlacesInput', - 'query', + _$GVoicePlaceRecommendationsInput._( + audioContentBase64: BuiltValueNullFieldError.checkNotNull( + audioContentBase64, + r'GVoicePlaceRecommendationsInput', + 'audioContentBase64', + ), + audioMimeType: BuiltValueNullFieldError.checkNotNull( + audioMimeType, + r'GVoicePlaceRecommendationsInput', + 'audioMimeType', ), ); replace(_$result); diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.data.gql.dart b/lib/features/mapflow/data/graphql/__generated__/search_places.data.gql.dart deleted file mode 100644 index 04b64dd..0000000 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.data.gql.dart +++ /dev/null @@ -1,167 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:built_collection/built_collection.dart'; -import 'package:built_value/built_value.dart'; -import 'package:built_value/json_object.dart' as _i2; -import 'package:built_value/serializer.dart'; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart' - as _i3; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/serializers.gql.dart' - as _i1; - -part 'search_places.data.gql.g.dart'; - -abstract class GSearchPlacesData - implements Built { - GSearchPlacesData._(); - - factory GSearchPlacesData([ - void Function(GSearchPlacesDataBuilder b) updates, - ]) = _$GSearchPlacesData; - - static void _initializeBuilder(GSearchPlacesDataBuilder b) => - b..G__typename = 'Query'; - - @BuiltValueField(wireName: '__typename') - String get G__typename; - GSearchPlacesData_searchPlaces get searchPlaces; - static Serializer get serializer => - _$gSearchPlacesDataSerializer; - - Map toJson() => - (_i1.serializers.serializeWith(GSearchPlacesData.serializer, this) - as Map); - - static GSearchPlacesData? fromJson(Map json) => - _i1.serializers.deserializeWith(GSearchPlacesData.serializer, json); -} - -abstract class GSearchPlacesData_searchPlaces - implements - Built< - GSearchPlacesData_searchPlaces, - GSearchPlacesData_searchPlacesBuilder - > { - GSearchPlacesData_searchPlaces._(); - - factory GSearchPlacesData_searchPlaces([ - void Function(GSearchPlacesData_searchPlacesBuilder b) updates, - ]) = _$GSearchPlacesData_searchPlaces; - - static void _initializeBuilder(GSearchPlacesData_searchPlacesBuilder b) => - b..G__typename = 'SearchPlacesPayload'; - - @BuiltValueField(wireName: '__typename') - String get G__typename; - String get message; - BuiltList get places; - static Serializer get serializer => - _$gSearchPlacesDataSearchPlacesSerializer; - - Map toJson() => - (_i1.serializers.serializeWith( - GSearchPlacesData_searchPlaces.serializer, - this, - ) - as Map); - - static GSearchPlacesData_searchPlaces? fromJson(Map json) => - _i1.serializers.deserializeWith( - GSearchPlacesData_searchPlaces.serializer, - json, - ); -} - -abstract class GSearchPlacesData_searchPlaces_places - implements - Built< - GSearchPlacesData_searchPlaces_places, - GSearchPlacesData_searchPlaces_placesBuilder - > { - GSearchPlacesData_searchPlaces_places._(); - - factory GSearchPlacesData_searchPlaces_places([ - void Function(GSearchPlacesData_searchPlaces_placesBuilder b) updates, - ]) = _$GSearchPlacesData_searchPlaces_places; - - static void _initializeBuilder( - GSearchPlacesData_searchPlaces_placesBuilder b, - ) => b..G__typename = 'Place'; - - @BuiltValueField(wireName: '__typename') - String get G__typename; - String get id; - String get googlePlaceId; - String get name; - double get latitude; - double get longitude; - String? get googlePrimaryType; - BuiltList get googleTypes; - String? get googleBusinessStatus; - double? get googleRating; - int? get googleUserRatingCount; - _i2.JsonObject? get googleRegularOpeningHours; - _i2.JsonObject? get googleCurrentOpeningHours; - BuiltList get photoUrls; - BuiltList get traits; - bool get isFavorite; - BuiltList get experiences; - static Serializer get serializer => - _$gSearchPlacesDataSearchPlacesPlacesSerializer; - - Map toJson() => - (_i1.serializers.serializeWith( - GSearchPlacesData_searchPlaces_places.serializer, - this, - ) - as Map); - - static GSearchPlacesData_searchPlaces_places? fromJson( - Map json, - ) => _i1.serializers.deserializeWith( - GSearchPlacesData_searchPlaces_places.serializer, - json, - ); -} - -abstract class GSearchPlacesData_searchPlaces_places_experiences - implements - Built< - GSearchPlacesData_searchPlaces_places_experiences, - GSearchPlacesData_searchPlaces_places_experiencesBuilder - > { - GSearchPlacesData_searchPlaces_places_experiences._(); - - factory GSearchPlacesData_searchPlaces_places_experiences([ - void Function(GSearchPlacesData_searchPlaces_places_experiencesBuilder b) - updates, - ]) = _$GSearchPlacesData_searchPlaces_places_experiences; - - static void _initializeBuilder( - GSearchPlacesData_searchPlaces_places_experiencesBuilder b, - ) => b..G__typename = 'VoiceExperience'; - - @BuiltValueField(wireName: '__typename') - String get G__typename; - String get id; - _i3.GVoiceExperienceStatus get status; - String get createdAt; - static Serializer - get serializer => _$gSearchPlacesDataSearchPlacesPlacesExperiencesSerializer; - - Map toJson() => - (_i1.serializers.serializeWith( - GSearchPlacesData_searchPlaces_places_experiences.serializer, - this, - ) - as Map); - - static GSearchPlacesData_searchPlaces_places_experiences? fromJson( - Map json, - ) => _i1.serializers.deserializeWith( - GSearchPlacesData_searchPlaces_places_experiences.serializer, - json, - ); -} diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.var.gql.dart b/lib/features/mapflow/data/graphql/__generated__/search_places.var.gql.dart deleted file mode 100644 index 3b71743..0000000 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.var.gql.dart +++ /dev/null @@ -1,32 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:built_value/built_value.dart'; -import 'package:built_value/serializer.dart'; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/schema.schema.gql.dart' - as _i1; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/serializers.gql.dart' - as _i2; - -part 'search_places.var.gql.g.dart'; - -abstract class GSearchPlacesVars - implements Built { - GSearchPlacesVars._(); - - factory GSearchPlacesVars([ - void Function(GSearchPlacesVarsBuilder b) updates, - ]) = _$GSearchPlacesVars; - - _i1.GSearchPlacesInput get input; - static Serializer get serializer => - _$gSearchPlacesVarsSerializer; - - Map toJson() => - (_i2.serializers.serializeWith(GSearchPlacesVars.serializer, this) - as Map); - - static GSearchPlacesVars? fromJson(Map json) => - _i2.serializers.deserializeWith(GSearchPlacesVars.serializer, json); -} diff --git a/lib/features/mapflow/data/graphql/__generated__/search_places.var.gql.g.dart b/lib/features/mapflow/data/graphql/__generated__/search_places.var.gql.g.dart deleted file mode 100644 index e30e993..0000000 --- a/lib/features/mapflow/data/graphql/__generated__/search_places.var.gql.g.dart +++ /dev/null @@ -1,161 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'search_places.var.gql.dart'; - -// ************************************************************************** -// BuiltValueGenerator -// ************************************************************************** - -Serializer _$gSearchPlacesVarsSerializer = - _$GSearchPlacesVarsSerializer(); - -class _$GSearchPlacesVarsSerializer - implements StructuredSerializer { - @override - final Iterable types = const [GSearchPlacesVars, _$GSearchPlacesVars]; - @override - final String wireName = 'GSearchPlacesVars'; - - @override - Iterable serialize( - Serializers serializers, - GSearchPlacesVars object, { - FullType specifiedType = FullType.unspecified, - }) { - final result = [ - 'input', - serializers.serialize( - object.input, - specifiedType: const FullType(_i1.GSearchPlacesInput), - ), - ]; - - return result; - } - - @override - GSearchPlacesVars deserialize( - Serializers serializers, - Iterable serialized, { - FullType specifiedType = FullType.unspecified, - }) { - final result = GSearchPlacesVarsBuilder(); - - final iterator = serialized.iterator; - while (iterator.moveNext()) { - final key = iterator.current! as String; - iterator.moveNext(); - final Object? value = iterator.current; - switch (key) { - case 'input': - result.input.replace( - serializers.deserialize( - value, - specifiedType: const FullType(_i1.GSearchPlacesInput), - )! - as _i1.GSearchPlacesInput, - ); - break; - } - } - - return result.build(); - } -} - -class _$GSearchPlacesVars extends GSearchPlacesVars { - @override - final _i1.GSearchPlacesInput input; - - factory _$GSearchPlacesVars([ - void Function(GSearchPlacesVarsBuilder)? updates, - ]) => (GSearchPlacesVarsBuilder()..update(updates))._build(); - - _$GSearchPlacesVars._({required this.input}) : super._(); - @override - GSearchPlacesVars rebuild(void Function(GSearchPlacesVarsBuilder) updates) => - (toBuilder()..update(updates)).build(); - - @override - GSearchPlacesVarsBuilder toBuilder() => - GSearchPlacesVarsBuilder()..replace(this); - - @override - bool operator ==(Object other) { - if (identical(other, this)) return true; - return other is GSearchPlacesVars && input == other.input; - } - - @override - int get hashCode { - var _$hash = 0; - _$hash = $jc(_$hash, input.hashCode); - _$hash = $jf(_$hash); - return _$hash; - } - - @override - String toString() { - return (newBuiltValueToStringHelper( - r'GSearchPlacesVars', - )..add('input', input)).toString(); - } -} - -class GSearchPlacesVarsBuilder - implements Builder { - _$GSearchPlacesVars? _$v; - - _i1.GSearchPlacesInputBuilder? _input; - _i1.GSearchPlacesInputBuilder get input => - _$this._input ??= _i1.GSearchPlacesInputBuilder(); - set input(_i1.GSearchPlacesInputBuilder? input) => _$this._input = input; - - GSearchPlacesVarsBuilder(); - - GSearchPlacesVarsBuilder get _$this { - final $v = _$v; - if ($v != null) { - _input = $v.input.toBuilder(); - _$v = null; - } - return this; - } - - @override - void replace(GSearchPlacesVars other) { - _$v = other as _$GSearchPlacesVars; - } - - @override - void update(void Function(GSearchPlacesVarsBuilder)? updates) { - if (updates != null) updates(this); - } - - @override - GSearchPlacesVars build() => _build(); - - _$GSearchPlacesVars _build() { - _$GSearchPlacesVars _$result; - try { - _$result = _$v ?? _$GSearchPlacesVars._(input: input.build()); - } catch (_) { - late String _$failedField; - try { - _$failedField = 'input'; - input.build(); - } catch (e) { - throw BuiltValueNestedFieldError( - r'GSearchPlacesVars', - _$failedField, - e.toString(), - ); - } - rethrow; - } - replace(_$result); - return _$result; - } -} - -// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/lib/features/mapflow/data/graphql/__generated__/serializers.gql.dart b/lib/features/mapflow/data/graphql/__generated__/serializers.gql.dart index 5dd6fc8..e3cf493 100644 --- a/lib/features/mapflow/data/graphql/__generated__/serializers.gql.dart +++ b/lib/features/mapflow/data/graphql/__generated__/serializers.gql.dart @@ -82,6 +82,16 @@ import 'package:mapflow/features/mapflow/data/graphql/__generated__/places.req.g show GPlacesReq; import 'package:mapflow/features/mapflow/data/graphql/__generated__/places.var.gql.dart' show GPlacesVars; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.data.gql.dart' + show + GRecommendPlacesByVoiceData, + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.req.gql.dart' + show GRecommendPlacesByVoiceReq; +import 'package:mapflow/features/mapflow/data/graphql/__generated__/recommend_places_by_voice.var.gql.dart' + show GRecommendPlacesByVoiceVars; import 'package:mapflow/features/mapflow/data/graphql/__generated__/remove_favorite_place.data.gql.dart' show GRemoveFavoritePlaceData, @@ -97,18 +107,8 @@ import 'package:mapflow/features/mapflow/data/graphql/__generated__/schema.schem GAuthenticateTelegramLoginInput, GCreateVoiceExperienceInput, GNearbyPlacesInput, - GSearchPlacesInput, - GVoiceExperienceStatus; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/search_places.data.gql.dart' - show - GSearchPlacesData, - GSearchPlacesData_searchPlaces, - GSearchPlacesData_searchPlaces_places, - GSearchPlacesData_searchPlaces_places_experiences; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/search_places.req.gql.dart' - show GSearchPlacesReq; -import 'package:mapflow/features/mapflow/data/graphql/__generated__/search_places.var.gql.dart' - show GSearchPlacesVars; + GVoiceExperienceStatus, + GVoicePlaceRecommendationsInput; import 'package:mapflow/features/mapflow/data/graphql/__generated__/start_telegram_bot_login.data.gql.dart' show GStartTelegramBotLoginData, @@ -181,18 +181,17 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GPlacesData_places_experiences, GPlacesReq, GPlacesVars, + GRecommendPlacesByVoiceData, + GRecommendPlacesByVoiceData_recommendPlacesByVoice, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, + GRecommendPlacesByVoiceReq, + GRecommendPlacesByVoiceVars, GRemoveFavoritePlaceData, GRemoveFavoritePlaceData_removeFavoritePlace, GRemoveFavoritePlaceData_removeFavoritePlace_experiences, GRemoveFavoritePlaceReq, GRemoveFavoritePlaceVars, - GSearchPlacesData, - GSearchPlacesData_searchPlaces, - GSearchPlacesData_searchPlaces_places, - GSearchPlacesData_searchPlaces_places_experiences, - GSearchPlacesInput, - GSearchPlacesReq, - GSearchPlacesVars, GStartTelegramBotLoginData, GStartTelegramBotLoginData_startTelegramBotLogin, GStartTelegramBotLoginReq, @@ -204,5 +203,6 @@ final SerializersBuilder _serializersBuilder = _$serializers.toBuilder() GVoiceExperiencesData_voiceExperiences_user, GVoiceExperiencesReq, GVoiceExperiencesVars, + GVoicePlaceRecommendationsInput, ]) final Serializers serializers = _serializersBuilder.build(); diff --git a/lib/features/mapflow/data/graphql/__generated__/serializers.gql.g.dart b/lib/features/mapflow/data/graphql/__generated__/serializers.gql.g.dart index 743068d..8d725cd 100644 --- a/lib/features/mapflow/data/graphql/__generated__/serializers.gql.g.dart +++ b/lib/features/mapflow/data/graphql/__generated__/serializers.gql.g.dart @@ -66,6 +66,18 @@ Serializers _$serializers = ..add(GPlacesData_places_experiences.serializer) ..add(GPlacesReq.serializer) ..add(GPlacesVars.serializer) + ..add(GRecommendPlacesByVoiceData.serializer) + ..add(GRecommendPlacesByVoiceData_recommendPlacesByVoice.serializer) + ..add( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places + .serializer, + ) + ..add( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences + .serializer, + ) + ..add(GRecommendPlacesByVoiceReq.serializer) + ..add(GRecommendPlacesByVoiceVars.serializer) ..add(GRemoveFavoritePlaceData.serializer) ..add(GRemoveFavoritePlaceData_removeFavoritePlace.serializer) ..add( @@ -73,13 +85,6 @@ Serializers _$serializers = ) ..add(GRemoveFavoritePlaceReq.serializer) ..add(GRemoveFavoritePlaceVars.serializer) - ..add(GSearchPlacesData.serializer) - ..add(GSearchPlacesData_searchPlaces.serializer) - ..add(GSearchPlacesData_searchPlaces_places.serializer) - ..add(GSearchPlacesData_searchPlaces_places_experiences.serializer) - ..add(GSearchPlacesInput.serializer) - ..add(GSearchPlacesReq.serializer) - ..add(GSearchPlacesVars.serializer) ..add(GStartTelegramBotLoginData.serializer) ..add(GStartTelegramBotLoginData_startTelegramBotLogin.serializer) ..add(GStartTelegramBotLoginReq.serializer) @@ -91,6 +96,7 @@ Serializers _$serializers = ..add(GVoiceExperiencesData_voiceExperiences_user.serializer) ..add(GVoiceExperiencesReq.serializer) ..add(GVoiceExperiencesVars.serializer) + ..add(GVoicePlaceRecommendationsInput.serializer) ..addBuilderFactory( const FullType(BuiltList, const [ const FullType(GFavoritePlacesData_favoritePlaces), @@ -109,12 +115,6 @@ Serializers _$serializers = ]), () => ListBuilder(), ) - ..addBuilderFactory( - const FullType(BuiltList, const [ - const FullType(GSearchPlacesData_searchPlaces_places), - ]), - () => ListBuilder(), - ) ..addBuilderFactory( const FullType(BuiltList, const [ const FullType(GVoiceExperiencesData_voiceExperiences), @@ -129,6 +129,21 @@ Serializers _$serializers = const FullType(BuiltList, const [const FullType(String)]), () => ListBuilder(), ) + ..addBuilderFactory( + const FullType(BuiltList, const [ + const FullType( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places, + ), + ]), + () => + ListBuilder< + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places + >(), + ) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(String)]), + () => ListBuilder(), + ) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(String)]), () => ListBuilder(), @@ -225,12 +240,12 @@ Serializers _$serializers = ..addBuilderFactory( const FullType(BuiltList, const [ const FullType( - GRemoveFavoritePlaceData_removeFavoritePlace_experiences, + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences, ), ]), () => ListBuilder< - GRemoveFavoritePlaceData_removeFavoritePlace_experiences + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places_experiences >(), ) ..addBuilderFactory( @@ -247,11 +262,13 @@ Serializers _$serializers = ) ..addBuilderFactory( const FullType(BuiltList, const [ - const FullType(GSearchPlacesData_searchPlaces_places_experiences), + const FullType( + GRemoveFavoritePlaceData_removeFavoritePlace_experiences, + ), ]), () => ListBuilder< - GSearchPlacesData_searchPlaces_places_experiences + GRemoveFavoritePlaceData_removeFavoritePlace_experiences >(), )) .build(); diff --git a/lib/features/mapflow/data/graphql/search_places.graphql b/lib/features/mapflow/data/graphql/recommend_places_by_voice.graphql similarity index 72% rename from lib/features/mapflow/data/graphql/search_places.graphql rename to lib/features/mapflow/data/graphql/recommend_places_by_voice.graphql index 9294753..c27a222 100644 --- a/lib/features/mapflow/data/graphql/search_places.graphql +++ b/lib/features/mapflow/data/graphql/recommend_places_by_voice.graphql @@ -1,6 +1,8 @@ -query SearchPlaces($input: SearchPlacesInput!) { - searchPlaces(input: $input) { - message +mutation RecommendPlacesByVoice($input: VoicePlaceRecommendationsInput!) { + recommendPlacesByVoice(input: $input) { + transcript + tags + summary places { id googlePlaceId diff --git a/lib/features/mapflow/data/mapflow_data_mappers.dart b/lib/features/mapflow/data/mapflow_data_mappers.dart index 24bdd31..870f055 100644 --- a/lib/features/mapflow/data/mapflow_data_mappers.dart +++ b/lib/features/mapflow/data/mapflow_data_mappers.dart @@ -10,8 +10,8 @@ import 'graphql/__generated__/favorite_places.data.gql.dart'; import 'graphql/__generated__/me.data.gql.dart'; import 'graphql/__generated__/nearby_places.data.gql.dart'; import 'graphql/__generated__/places.data.gql.dart'; +import 'graphql/__generated__/recommend_places_by_voice.data.gql.dart'; import 'graphql/__generated__/remove_favorite_place.data.gql.dart'; -import 'graphql/__generated__/search_places.data.gql.dart'; import 'graphql/__generated__/voice_experiences.data.gql.dart'; AppUser appUserFromMe(GMeData_me user) { @@ -158,8 +158,8 @@ PlaceRecommendation placeRecommendationFromFavoritePlace( ); } -PlaceRecommendation placeRecommendationFromSearchPlace( - GSearchPlacesData_searchPlaces_places place, +PlaceRecommendation placeRecommendationFromVoiceRecommendedPlace( + GRecommendPlacesByVoiceData_recommendPlacesByVoice_places place, ) { return PlaceRecommendation( id: place.id, diff --git a/lib/features/mapflow/data/places_repository.dart b/lib/features/mapflow/data/places_repository.dart index 80b7382..52d98da 100644 --- a/lib/features/mapflow/data/places_repository.dart +++ b/lib/features/mapflow/data/places_repository.dart @@ -5,8 +5,8 @@ import 'graphql/__generated__/add_favorite_place.req.gql.dart'; import 'graphql/__generated__/favorite_places.req.gql.dart'; import 'graphql/__generated__/nearby_places.req.gql.dart'; import 'graphql/__generated__/places.req.gql.dart'; +import 'graphql/__generated__/recommend_places_by_voice.req.gql.dart'; import 'graphql/__generated__/remove_favorite_place.req.gql.dart'; -import 'graphql/__generated__/search_places.req.gql.dart'; import 'mapflow_data_mappers.dart'; import 'mapflow_graphql_client.dart'; @@ -43,16 +43,23 @@ class PlacesRepository { return data.nearbyPlaces.map(placeRecommendationFromNearbyPlace).toList(); } - Future searchPlaces(String query) async { + Future recommendPlacesByVoice({ + required String audioContentBase64, + required String audioMimeType, + }) async { final data = await _client.request( - GSearchPlacesReq((b) { - b.vars.input.query = query; + GRecommendPlacesByVoiceReq((b) { + b.vars.input + ..audioContentBase64 = audioContentBase64 + ..audioMimeType = audioMimeType; }), ); - return PlaceSearchResult( - message: data.searchPlaces.message, - places: data.searchPlaces.places - .map(placeRecommendationFromSearchPlace) + return VoicePlaceRecommendationResult( + transcript: data.recommendPlacesByVoice.transcript, + tags: data.recommendPlacesByVoice.tags.toList().cast(), + summary: data.recommendPlacesByVoice.summary, + places: data.recommendPlacesByVoice.places + .map(placeRecommendationFromVoiceRecommendedPlace) .toList(), ); } diff --git a/lib/features/mapflow/domain/place_models.dart b/lib/features/mapflow/domain/place_models.dart index e1ada4d..afd7500 100644 --- a/lib/features/mapflow/domain/place_models.dart +++ b/lib/features/mapflow/domain/place_models.dart @@ -186,10 +186,17 @@ class PlaceRecommendation { } } -class PlaceSearchResult { - const PlaceSearchResult({required this.message, required this.places}); +class VoicePlaceRecommendationResult { + const VoicePlaceRecommendationResult({ + required this.transcript, + required this.tags, + required this.summary, + required this.places, + }); - final String message; + final String transcript; + final List tags; + final String summary; final List places; } diff --git a/lib/features/mapflow/presentation/mapflow_shell.dart b/lib/features/mapflow/presentation/mapflow_shell.dart index 59737a2..cfba0b7 100644 --- a/lib/features/mapflow/presentation/mapflow_shell.dart +++ b/lib/features/mapflow/presentation/mapflow_shell.dart @@ -125,12 +125,12 @@ class _MapContent extends StatelessWidget { SafeArea( child: Align( alignment: Alignment.topCenter, - child: _MapSearchButton( - query: state.searchQuery, - onSearch: placeCubit.searchPlaces, - onClear: state.searchQuery.isEmpty + child: _VoiceFilterButton( + transcript: state.voiceFilterTranscript, + onApply: placeCubit.recommendPlacesByVoice, + onClear: state.voiceFilterTranscript.isEmpty ? null - : placeCubit.clearSearch, + : placeCubit.clearVoiceFilter, ), ), ), @@ -334,21 +334,25 @@ class _AddReviewButton extends StatelessWidget { } } -class _MapSearchButton extends StatelessWidget { - const _MapSearchButton({ - required this.query, - required this.onSearch, +class _VoiceFilterButton extends StatelessWidget { + const _VoiceFilterButton({ + required this.transcript, + required this.onApply, required this.onClear, }); - final String query; - final Future Function(String) onSearch; + final String transcript; + final Future Function({ + required String audioContentBase64, + required String audioMimeType, + }) + onApply; final Future Function()? onClear; @override Widget build(BuildContext context) { final tokens = context.mapflowTokens; - final label = query.isEmpty ? 'Поиск' : query; + final label = transcript.isEmpty ? 'Голосом' : transcript; return Padding( padding: const EdgeInsets.only(top: 8, left: 70, right: 70), @@ -364,7 +368,7 @@ class _MapSearchButton extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ const SizedBox(width: 12), - const Icon(Icons.auto_awesome_outlined, size: 18), + const Icon(Icons.mic_none_rounded, size: 18), const SizedBox(width: 8), Flexible( child: Text( @@ -392,40 +396,141 @@ class _MapSearchButton extends StatelessWidget { } Future _openSearch(BuildContext context) async { - final controller = TextEditingController(text: query); - final result = await showDialog( + final result = await showDialog<_VoiceFilterAudio>( context: context, - builder: (context) { - return AlertDialog( - contentPadding: const EdgeInsets.fromLTRB(18, 18, 18, 8), - content: TextField( - controller: controller, - autofocus: true, - textInputAction: TextInputAction.search, - decoration: const InputDecoration( - prefixIcon: Icon(Icons.auto_awesome_outlined), - hintText: 'Что ищем?', - ), - onSubmitted: (value) => Navigator.of(context).pop(value), - ), - actions: [ - TextButton( - onPressed: () => Navigator.of(context).pop(), - child: const Text('Отмена'), - ), - FilledButton( - onPressed: () => Navigator.of(context).pop(controller.text), - child: const Text('Найти'), - ), - ], - ); - }, + builder: (_) => const _VoiceFilterDialog(), ); - controller.dispose(); if (result == null) { return; } - await onSearch(result); + await onApply( + audioContentBase64: result.audioContentBase64, + audioMimeType: result.audioMimeType, + ); + } +} + +class _VoiceFilterAudio { + const _VoiceFilterAudio({ + required this.audioContentBase64, + required this.audioMimeType, + }); + + final String audioContentBase64; + final String audioMimeType; +} + +class _VoiceFilterDialog extends StatefulWidget { + const _VoiceFilterDialog(); + + @override + State<_VoiceFilterDialog> createState() => _VoiceFilterDialogState(); +} + +class _VoiceFilterDialogState extends State<_VoiceFilterDialog> { + final _waveController = WaveformRecorderController( + interval: const Duration(milliseconds: 60), + config: const RecordConfig( + numChannels: 1, + sampleRate: 44100, + autoGain: true, + echoCancel: true, + noiseSuppress: true, + ), + ); + + var _recording = false; + var _submitting = false; + var _hasRecording = false; + + @override + void dispose() { + _waveController.dispose(); + super.dispose(); + } + + Future _toggleRecording() async { + if (_recording) { + await _waveController.stopRecording(); + setState(() { + _recording = false; + _hasRecording = true; + }); + return; + } + + await _waveController.startRecording(); + setState(() => _recording = true); + } + + Future _apply() async { + if (_recording) { + await _waveController.stopRecording(); + setState(() { + _recording = false; + _hasRecording = true; + }); + } + final file = _waveController.file; + if (file == null) { + throw StateError('Voice filter recording file is required.'); + } + setState(() => _submitting = true); + final bytes = await file.readAsBytes(); + if (!mounted) { + return; + } + Navigator.of(context).pop( + _VoiceFilterAudio( + audioContentBase64: base64Encode(bytes), + audioMimeType: file.mimeType ?? 'audio/wav', + ), + ); + } + + @override + Widget build(BuildContext context) { + return AlertDialog( + contentPadding: const EdgeInsets.fromLTRB(18, 18, 18, 8), + content: SizedBox( + width: 260, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + IconButton.filled( + onPressed: _submitting ? null : _toggleRecording, + icon: Icon(_recording ? Icons.stop_rounded : Icons.mic_rounded), + iconSize: 34, + style: IconButton.styleFrom( + fixedSize: const Size.square(82), + minimumSize: const Size.square(82), + ), + tooltip: _recording ? 'Стоп' : 'Записать', + ), + const SizedBox(height: 16), + Text( + _recording ? 'Слушаю' : 'Голосовой фильтр', + style: const TextStyle(fontWeight: FontWeight.w900), + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: _submitting ? null : () => Navigator.of(context).pop(), + child: const Text('Отмена'), + ), + FilledButton( + onPressed: _submitting || !_hasRecording ? null : _apply, + child: _submitting + ? const SizedBox.square( + dimension: 18, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Применить'), + ), + ], + ); } }