45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
| import 'package:guru_app/financial/asset/assets_model.dart';
 | |
| import 'package:guru_app/financial/data/db/order_database.dart';
 | |
| import 'package:guru_app/financial/manifest/manifest.dart';
 | |
| import 'package:guru_app/financial/product/product_model.dart';
 | |
| import 'package:guru_utils/datetime/datetime_utils.dart';
 | |
| import 'package:guru_utils/id/id_utils.dart';
 | |
| 
 | |
| /// Created by Haoyi on 2023/2/13
 | |
| 
 | |
| class RewardProduct implements Product {
 | |
|   @override
 | |
|   final ProductId productId;
 | |
| 
 | |
|   @override
 | |
|   final Manifest manifest;
 | |
| 
 | |
|   String get sku => productId.sku;
 | |
| 
 | |
|   RewardProduct(this.productId, this.manifest);
 | |
| 
 | |
|   bool isConsumable() {
 | |
|     return productId.isConsumable;
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   String toString() {
 | |
|     return 'IapProduct{productId: $productId}';
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   OrderEntity createOrder() {
 | |
|     return OrderEntity(
 | |
|         orderId: IdUtils.uuidV4(),
 | |
|         sku: productId.sku,
 | |
|         state: TransactionState.success,
 | |
|         attr: productId.attr,
 | |
|         method: TransactionMethod.reward.index,
 | |
|         currency: TransactionCurrency.reward,
 | |
|         cost: 0,
 | |
|         category: manifest.category,
 | |
|         timestamp: DateTimeUtils.currentTimeInMillis(),
 | |
|         manifest: manifest);
 | |
|   }
 | |
| }
 |