/// Model for a parsed receipt item from the receipt import API. class ParsedReceiptItem { final String rawName; final double? quantity; final String? unit; final double? price; final String? brand; final String? origin; // alias-match (säker, ingen bekräftelse behövs) final int? matchedProductId; final String? matchedProductName; // ordbaserad match (kräver bekräftelse) final int? suggestedProductId; final String? suggestedProductName; // AI-kategorisuggestion (premium) final String? categorySuggestionName; final String? categorySuggestionPath; ParsedReceiptItem({ required this.rawName, this.quantity, this.unit, this.price, this.brand, this.origin, this.matchedProductId, this.matchedProductName, this.suggestedProductId, this.suggestedProductName, this.categorySuggestionName, this.categorySuggestionPath, }); factory ParsedReceiptItem.fromJson(Map json) { final cat = json['categorySuggestion'] as Map?; return ParsedReceiptItem( rawName: json['rawName'] as String? ?? '', quantity: (json['quantity'] as num?)?.toDouble(), unit: json['unit'] as String?, price: (json['price'] as num?)?.toDouble(), brand: json['brand'] as String?, origin: json['origin'] as String?, matchedProductId: (json['matchedProductId'] as num?)?.toInt(), matchedProductName: json['matchedProductName'] as String?, suggestedProductId: (json['suggestedProductId'] as num?)?.toInt(), suggestedProductName: json['suggestedProductName'] as String?, categorySuggestionName: cat?['categoryName'] as String?, categorySuggestionPath: cat?['path'] as String?, ); } }