Files
2026-08-30 12:24:29 +02:00

44 lines
957 B
Dart

/// A parsed receipt row shown on the review screen.
library;
class LineItem {
LineItem({
required this.id,
required this.name,
required this.price,
this.quantity,
this.unitPrice,
this.discount = 0,
});
final String id;
final String name;
/// Line total after any discount.
final double price;
final int? quantity;
final double? unitPrice;
/// Negative amount when a discount was folded into [price].
final double discount;
LineItem copyWith({
String? id,
String? name,
double? price,
int? quantity,
double? unitPrice,
double? discount,
bool clearQuantity = false,
}) {
return LineItem(
id: id ?? this.id,
name: name ?? this.name,
price: price ?? this.price,
quantity: clearQuantity ? null : (quantity ?? this.quantity),
unitPrice: clearQuantity ? null : (unitPrice ?? this.unitPrice),
discount: discount ?? this.discount,
);
}
}