a68a0ca86f
Test Suite / test (24.15.0) (push) Has been cancelled
- Added new API path for unit mappings in `api_paths.dart`. - Implemented `upsertUnitMapping` method in `ImportRepository` to handle unit mapping creation. - Updated `ReceiptImportTab` to learn and save unit mappings during receipt import. - Created DTO for unit mapping with validation in `create-unit-mapping.dto.ts`. - Added SQL migration for `UnitMapping` table creation with necessary constraints.
27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
import { PrismaService } from '../prisma/prisma.service';
|
|
import { ParsedReceiptItem } from './dto/parsed-receipt-item.dto';
|
|
import { AiService } from '../ai/ai.service';
|
|
import { CategoriesService } from '../categories/categories.service';
|
|
export declare function isIgnoredReceiptName(value: string | null | undefined): boolean;
|
|
export declare class ReceiptImportService {
|
|
private readonly prisma;
|
|
private readonly aiService;
|
|
private readonly categoriesService;
|
|
private readonly logger;
|
|
private cachedCategories;
|
|
constructor(prisma: PrismaService, aiService: AiService, categoriesService: CategoriesService);
|
|
loadCategories(): Promise<void>;
|
|
parseReceipt(file: Express.Multer.File, _isPremium?: boolean, userId?: number): Promise<ParsedReceiptItem[]>;
|
|
upsertUnitMapping(userId: number, productId: number, originalUnit: string, preferredUnit: string): Promise<any>;
|
|
private parseReceiptViaImporter;
|
|
private matchProducts;
|
|
private findWordMatch;
|
|
private enrichWithAiCategories;
|
|
private shouldTraceDecision;
|
|
private resolvePorkCategory;
|
|
private resolveBreadCategory;
|
|
private applyHardCategoryOverrides;
|
|
private ruleBasedCategorySuggestion;
|
|
private applyContradictionGuard;
|
|
}
|