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);
|
|
}
|
|
}
|