Files
sendico/frontend/pshared/lib/data/dto/payment/payment.dart
2026-02-16 21:05:38 +03:00

44 lines
1.1 KiB
Dart

import 'package:json_annotation/json_annotation.dart';
import 'package:pshared/data/dto/payment/payment_quote.dart';
part 'payment.g.dart';
@JsonSerializable()
class PaymentDTO {
final String? paymentRef;
final String? idempotencyKey;
final String? state;
final String? failureCode;
final String? failureReason;
final PaymentQuoteDTO? lastQuote;
final Map<String, String>? metadata;
final String? createdAt;
const PaymentDTO({
this.paymentRef,
this.idempotencyKey,
this.state,
this.failureCode,
this.failureReason,
this.lastQuote,
this.metadata,
this.createdAt,
});
factory PaymentDTO.fromJson(Map<String, dynamic> json) =>
_$PaymentDTOFromJson(_normalizeJson(json));
Map<String, dynamic> toJson() => _$PaymentDTOToJson(this);
static Map<String, dynamic> _normalizeJson(Map<String, dynamic> json) {
if (json.containsKey('metadata') || !json.containsKey('meta')) {
return json;
}
final normalized = Map<String, dynamic>.from(json);
normalized['metadata'] = normalized['meta'];
return normalized;
}
}