feat(inventory): naturlig-språklig fritextsökning med FoodTwin-fakta, trust-hedge och i18n ×12
- Nytt endpoint GET /v1/inventory/natural-search. - Robust matchning med unaccent + pg_trgm similarity mot display_name, brand och kanoniska ingrediensnamn (sv/en). - Svar byggs deterministiskt från faktisk data: lagringsplats + sublocation om registrerad, trust-state-hedge från befintlig trust-motor. - Server-sidan i18n-katalog för 12 språk. - Tester för svensk träff och noll-träff på flera språk. - Design-dokument docs/30-sökrobusthet-matvaror.md.
This commit is contained in:
@@ -44,6 +44,14 @@ export const inventoryQuerySchema = z.object({
|
||||
});
|
||||
export type InventoryQuery = z.infer<typeof inventoryQuerySchema>;
|
||||
|
||||
/** Naturligt-språklig fritextsökning i hushållslagret (spec §8). */
|
||||
export const inventoryNaturalSearchQuerySchema = z.object({
|
||||
q: z.string().min(1).max(80).trim(),
|
||||
languageTag: z.string().min(2).max(35).default("sv-SE"),
|
||||
limit: z.coerce.number().int().min(1).max(20).default(5),
|
||||
});
|
||||
export type InventoryNaturalSearchQuery = z.infer<typeof inventoryNaturalSearchQuerySchema>;
|
||||
|
||||
export const reconciliationStartInputSchema = z.object({
|
||||
maxItems: z.coerce.number().int().min(1).max(50).optional(),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user