Files
sendico/frontend/pshared/lib/data/mapper/ledger/account.dart
2026-01-23 02:48:10 +01:00

47 lines
1.5 KiB
Dart

import 'package:pshared/data/dto/ledger/account.dart';
import 'package:pshared/data/mapper/describable.dart';
import 'package:pshared/data/mapper/ledger/balance.dart';
import 'package:pshared/data/mapper/ledger/status.dart';
import 'package:pshared/data/mapper/ledger/type.dart';
import 'package:pshared/models/describable.dart';
import 'package:pshared/models/ledger/account.dart';
extension LedgerAccountDTOMapper on LedgerAccountDTO {
LedgerAccount toDomain() => LedgerAccount(
ledgerAccountRef: ledgerAccountRef,
organizationRef: organizationRef,
ownerRef: ownerRef,
accountCode: accountCode,
accountType: accountType.toDomain(),
currency: currency,
status: status.toDomain(),
allowNegative: allowNegative,
isSettlement: isSettlement,
metadata: metadata,
createdAt: createdAt,
updatedAt: updatedAt,
describable: describable?.toDomain() ?? newDescribable(name: '', description: null),
balance: balance?.toDomain(),
);
}
extension LedgerAccountModelMapper on LedgerAccount {
LedgerAccountDTO toDTO() => LedgerAccountDTO(
ledgerAccountRef: ledgerAccountRef,
organizationRef: organizationRef,
ownerRef: ownerRef,
accountCode: accountCode,
accountType: accountType.toDTO(),
currency: currency,
status: status.toDTO(),
allowNegative: allowNegative,
isSettlement: isSettlement,
metadata: metadata,
createdAt: createdAt,
updatedAt: updatedAt,
describable: describable.toDTO(),
balance: balance?.toDTO(),
);
}