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