/// 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; final int? categorySuggestionId; 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, this.categorySuggestionId, }); 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?, categorySuggestionId: (cat?['categoryId'] as num?)?.toInt(), ); } Map toJson() { return { 'rawName': rawName, 'quantity': quantity, 'unit': unit, 'price': price, 'brand': brand, 'origin': origin, 'matchedProductId': matchedProductId, 'matchedProductName': matchedProductName, 'suggestedProductId': suggestedProductId, 'suggestedProductName': suggestedProductName, if (categorySuggestionId != null || categorySuggestionName != null || categorySuggestionPath != null) 'categorySuggestion': { 'categoryId': categorySuggestionId, 'categoryName': categorySuggestionName, 'path': categorySuggestionPath, }, }; } }