This commit is contained in:
Aerilyn Weber 2026-05-14 19:59:42 +09:00
parent a1801af63b
commit d2a7e652b3
16 changed files with 113 additions and 92 deletions

View file

@ -16,15 +16,17 @@ export const CreatePriceRecordSchema = z.object({
export const BulkPriceRecordInputSchema = z.object({
storeId: z.string().min(1),
date: z.iso.datetime().optional(),
items: z.array(
z.object({
productId: z.string().min(1),
price: z.number().positive(),
quantity: z.number().positive(),
unit: z.nativeEnum(ServingUnit),
notes: z.string().max(1000).trim().optional(),
})
).min(1),
items: z
.array(
z.object({
productId: z.string().min(1),
price: z.number().positive(),
quantity: z.number().positive(),
unit: z.nativeEnum(ServingUnit),
notes: z.string().max(1000).trim().optional(),
}),
)
.min(1),
});
export const PriceHistoryQuerySchema = z.object({
@ -70,7 +72,7 @@ export const PriceAnalyticsResponseSchema = z.object({
storeName: z.string(),
avgTotal: z.number(),
tripCount: z.number(),
})
}),
),
priceAlerts: z.array(
z.object({
@ -82,20 +84,20 @@ export const PriceAnalyticsResponseSchema = z.object({
currentPrice: z.number(),
changePercent: z.number(),
date: z.string(),
})
}),
),
spendingOverTime: z.array(
z.object({
period: z.string(),
total: z.number(),
})
}),
),
spendingByCategory: z.array(
z.object({
category: z.string(),
total: z.number(),
avgPerItem: z.number(),
})
}),
),
});