48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
/// Created by Haoyi on 2023/2/18
 | 
						|
 | 
						|
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 IgcProduct implements Product {
 | 
						|
  @override
 | 
						|
  final ProductId productId;
 | 
						|
 | 
						|
  @override
 | 
						|
  final Manifest manifest;
 | 
						|
 | 
						|
  final int cost;
 | 
						|
 | 
						|
  String get sku => productId.sku;
 | 
						|
 | 
						|
  IgcProduct(this.productId, this.manifest, this.cost);
 | 
						|
 | 
						|
  bool isConsumable() {
 | 
						|
    return productId.isConsumable;
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  String toString() {
 | 
						|
    return 'IgcProduct{productId: $productId}';
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  OrderEntity createOrder() {
 | 
						|
    return OrderEntity(
 | 
						|
        orderId: IdUtils.uuidV4(),
 | 
						|
        sku: productId.sku,
 | 
						|
        state: TransactionState.success,
 | 
						|
        attr: productId.attr,
 | 
						|
        method: TransactionMethod.igc.index,
 | 
						|
        currency: TransactionCurrency.igc,
 | 
						|
        cost: cost.toDouble(),
 | 
						|
        category: manifest.category,
 | 
						|
        timestamp: DateTimeUtils.currentTimeInMillis(),
 | 
						|
        manifest: manifest);
 | 
						|
  }
 | 
						|
}
 |