import 'package:pshared/models/ledger/account.dart';
import 'package:pshared/models/payment/wallet.dart';

sealed class BalanceItem {
  const BalanceItem();

  const factory BalanceItem.wallet(Wallet wallet) = WalletBalanceItem;
  const factory BalanceItem.ledger(LedgerAccount account) = LedgerBalanceItem;
  const factory BalanceItem.addAction() = AddBalanceActionItem;
}

final class WalletBalanceItem extends BalanceItem {
  final Wallet wallet;

  const WalletBalanceItem(this.wallet);
}

final class LedgerBalanceItem extends BalanceItem {
  final LedgerAccount account;

  const LedgerBalanceItem(this.account);
}

final class AddBalanceActionItem extends BalanceItem {
  const AddBalanceActionItem();
}
