import 'package:json_annotation/json_annotation.dart';
import 'package:payment_plugin/utils/json.dart';

part '../../_generated/domain/models/payment_method.g.dart';

@JsonSerializable()
class PaymentMethod {
  final String? brand;
  final String? cvc;
  final String? encryptedCard;
  final String? encryptedCardNumber;
  final String? encryptedExpiryMonth;
  final String? encryptedExpiryYear;
  final String? encryptedSecurityCode;
  final String? expiryMonth;
  final String? expiryYear;
  final String? holderName;
  final String? number;
  final String? type;

  PaymentMethod({
    this.brand,
    this.cvc,
    this.encryptedCard,
    this.encryptedCardNumber,
    this.encryptedExpiryMonth,
    this.encryptedExpiryYear,
    this.encryptedSecurityCode,
    this.expiryMonth,
    this.expiryYear,
    this.holderName,
    this.number,
    this.type,
  });

  factory PaymentMethod.fromJson(Json json) => _$PaymentMethodFromJson(json);

  Json toJson() => _$PaymentMethodToJson(this);
}