35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:freezed_annotation/freezed_annotation.dart';
 | |
| 
 | |
| part 'auto_completion.freezed.dart';
 | |
| part 'auto_completion.g.dart';
 | |
| 
 | |
| @freezed
 | |
| sealed class AutoCompletionResponse with _$AutoCompletionResponse {
 | |
|   const factory AutoCompletionResponse.account({
 | |
|     required String type,
 | |
|     required List<AutoCompletionItem> items,
 | |
|   }) = AutoCompletionAccountResponse;
 | |
| 
 | |
|   const factory AutoCompletionResponse.sticker({
 | |
|     required String type,
 | |
|     required List<AutoCompletionItem> items,
 | |
|   }) = AutoCompletionStickerResponse;
 | |
| 
 | |
|   factory AutoCompletionResponse.fromJson(Map<String, dynamic> json) =>
 | |
|       _$AutoCompletionResponseFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class AutoCompletionItem with _$AutoCompletionItem {
 | |
|   const factory AutoCompletionItem({
 | |
|     required String id,
 | |
|     required String displayName,
 | |
|     required String? secondaryText,
 | |
|     required String type,
 | |
|     required dynamic data,
 | |
|   }) = _AutoCompletionItem;
 | |
| 
 | |
|   factory AutoCompletionItem.fromJson(Map<String, dynamic> json) =>
 | |
|       _$AutoCompletionItemFromJson(json);
 | |
| }
 |