import 'package:money2/money2.dart';

import 'package:pshared/models/payment/fees/treatment.dart';
import 'package:pshared/models/payment/fx/intent.dart';
import 'package:pshared/models/payment/kind.dart';
import 'package:pshared/models/payment/customer.dart';
import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/settlement_mode.dart';


class PaymentIntent {
  final PaymentKind kind;
  final String? sourceRef;
  final PaymentMethodData? source;
  final String? destinationRef;
  final PaymentMethodData? destination;
  final Money? amount;
  final FxIntent? fx;
  final FeeTreatment feeTreatment;
  final SettlementMode settlementMode;
  final Map<String, String>? attributes;
  final String? comment;
  final Customer? customer;

  const PaymentIntent({
    this.kind = PaymentKind.unspecified,
    this.sourceRef,
    this.source,
    this.destinationRef,
    this.destination,
    this.amount,
    this.fx,
    this.settlementMode = SettlementMode.unspecified,
    this.attributes,
    this.comment,
    this.customer,
    required this.feeTreatment,
  });
}
