Files
enaklo-flutter/lib/infrastructure/wallet/dto/payment_code_dto.dart
T

25 lines
722 B
Dart
Raw Normal View History

part of '../wallet_dtos.dart';
@freezed
abstract class PaymentCodeDto with _$PaymentCodeDto {
const factory PaymentCodeDto({
@JsonKey(name: 'code') String? code,
@JsonKey(name: 'qr_payload') String? qrPayload,
@JsonKey(name: 'expires_at') String? expiresAt,
}) = _PaymentCodeDto;
factory PaymentCodeDto.fromJson(Map<String, dynamic> json) =>
_$PaymentCodeDtoFromJson(json);
const PaymentCodeDto._();
PaymentCode toDomain() => PaymentCode(
code: code ?? '',
qrPayload: qrPayload ?? '',
// Kode berlaku 2 menit; dipakai hanya bila server tidak mengirim expires_at.
expiresAt:
_parseDateTime(expiresAt) ??
DateTime.now().add(const Duration(minutes: 2)),
);
}