import 'package:flutter/material.dart';
import 'package:okane/database/collections/transaction.dart';
import 'package:okane/ui/utils.dart';
import 'package:okane/ui/widgets/image_wrapper.dart';

class TransactionCard extends StatelessWidget {
  final Widget? subtitle;

  const TransactionCard({
    super.key,
    required this.transaction,
    required this.onTap,
    this.subtitle,
  });

  final Transaction transaction;

  final VoidCallback onTap;

  @override
  Widget build(BuildContext context) {
    return Card(
      clipBehavior: Clip.hardEdge,
      child: ListTile(
        onTap: onTap,
        leading: ImageWrapper(
          title: transaction.beneficiary.value!.name,
          path: transaction.beneficiary.value!.imagePath,
        ),
        trailing: Text(formatDateTime(transaction.date)),
        title: Text(transaction.beneficiary.value!.name),
        subtitle: Column(
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text(
              formatCurrency(transaction.amount),
              style: TextStyle(
                color: transaction.amount < 0 ? Colors.red : Colors.green,
              ),
            ),
            if (subtitle != null) subtitle!,
          ],
        ),
      ),
    );
  }
}