guru_sdk/guru_app/lib/financial/igb/igb_manager.dart

54 lines
1.8 KiB
Dart

import 'package:guru_app/analytics/guru_analytics.dart';
import 'package:guru_app/database/guru_db.dart';
import 'package:guru_app/financial/asset/assets_model.dart';
import 'package:guru_app/financial/asset/assets_store.dart';
import 'package:guru_app/financial/data/db/order_database.dart';
import 'package:guru_app/financial/igb/igb_product.dart';
import 'package:guru_app/financial/igc/igc_model.dart';
import 'package:guru_app/financial/manifest/manifest_manager.dart';
import 'package:guru_app/financial/product/product_model.dart';
import 'package:guru_app/guru_app.dart';
import 'package:guru_app/inventory/inventory_manager.dart';
import 'package:guru_app/property/app_property.dart';
import 'package:guru_utils/extensions/extensions.dart';
import 'package:guru_utils/log/log.dart';
import 'package:guru_utils/property/app_property.dart';
/// Created by Haoyi on 2023/2/18
class IgbManager {
static final IgbManager _instance = IgbManager._();
static IgbManager get instance => _instance;
IgbManager._();
Future init() async {
await InventoryManager.instance.init();
}
Future reloadAssets() async {}
Future<bool> accumulate(int igc, TransactionMethod method, {String? scene}) async {
return false;
}
Future clear() async {}
Future<IgbProduct> buildIgbProduct(TransactionIntent intent) async {
final manifest = await ManifestManager.instance.createManifest(intent);
return IgbProduct(intent.productId, manifest, intent.igbCost);
}
Future<bool> redeem(IgbProduct product) async {
Log.v("Igb buy");
final result = await InventoryManager.instance.consume(product.cost, product.manifest);
if (result) {
await ManifestManager.instance.deliver(product.manifest, TransactionMethod.igb);
}
return true;
}
void dispose() {}
}