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

23 lines
750 B
Dart
Raw Normal View History

part of '../wallet_dtos.dart';
@freezed
abstract class WalletExpiringDto with _$WalletExpiringDto {
const factory WalletExpiringDto({
@JsonKey(name: 'point') List<ExpiringAmountDto>? point,
@JsonKey(name: 'coin') List<ExpiringAmountDto>? coin,
}) = _WalletExpiringDto;
factory WalletExpiringDto.fromJson(Map<String, dynamic> json) =>
_$WalletExpiringDtoFromJson(json);
const WalletExpiringDto._();
WalletExpiring toDomain() =>
WalletExpiring(point: _sorted(point), coin: _sorted(coin));
/// Paling dekat di atas.
List<ExpiringAmount> _sorted(List<ExpiringAmountDto>? list) =>
(list ?? []).map((e) => e.toDomain()).whereType<ExpiringAmount>().toList()
..sort((a, b) => a.date.compareTo(b.date));
}