feat: implement matchedVia tracking for receipt items and enhance user alias management
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -309,6 +309,7 @@ export class ReceiptImportService {
|
||||
matchedProductId: alias.product.id,
|
||||
matchedProductName: alias.product.canonicalName ?? alias.product.name,
|
||||
unit: mappedUnit ?? item.unit,
|
||||
matchedVia: 'alias' as const,
|
||||
...(cat ? { categorySuggestion: { categoryId: cat.id, categoryName: cat.name, path: cat.name, confidence: 'high' as const, usedFallback: false } } : {}),
|
||||
};
|
||||
}
|
||||
@@ -316,7 +317,7 @@ export class ReceiptImportService {
|
||||
// 2. Ordbaserad matchning (förslag, kräver bekräftelse)
|
||||
const suggestion = this.findWordMatch(raw, products);
|
||||
if (!suggestion) {
|
||||
return { ...item };
|
||||
return { ...item, matchedVia: 'none' as const };
|
||||
}
|
||||
|
||||
// Kontrollera om det finns en enhetsmappning för produkten och användaren
|
||||
@@ -333,6 +334,7 @@ export class ReceiptImportService {
|
||||
suggestedProductId: suggestion.id,
|
||||
suggestedProductName: suggestion.canonicalName ?? suggestion.name,
|
||||
unit: preferredUnit,
|
||||
matchedVia: 'wordmatch' as const,
|
||||
...(cat ? { categorySuggestion: { categoryId: cat.id, categoryName: cat.name, path: cat.name, confidence: 'medium' as const, usedFallback: false } } : {}),
|
||||
};
|
||||
});
|
||||
@@ -547,7 +549,7 @@ export class ReceiptImportService {
|
||||
|
||||
enriched.push(
|
||||
finalSuggestion
|
||||
? { ...item, categorySuggestion: finalSuggestion }
|
||||
? { ...item, categorySuggestion: finalSuggestion, matchedVia: item.matchedVia ?? (finalSuggestion ? 'ai' as const : 'none' as const) }
|
||||
: item,
|
||||
);
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user