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