chore: query optimization
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import { PurchaseList, purchaseListSchema } from './types';
|
||||
import { Tool } from './tool';
|
||||
import { BaseTool, makeRequest } from '../anthropicClient';
|
||||
import { BaseTool, makeRequest } from '@anthropic';
|
||||
import { generatePrompt } from './prompt';
|
||||
import { Consumer } from '../consumer/types';
|
||||
import prisma from '../../prisma/prisma';
|
||||
import { Consumer } from '@consumer/types';
|
||||
import prisma from '@prisma';
|
||||
|
||||
export async function generate(
|
||||
id: number | undefined,
|
||||
@@ -17,29 +17,8 @@ export async function generate(
|
||||
parseInt(process.env.NUMBER_OF_WEEKS ?? '4')
|
||||
);
|
||||
|
||||
const consumer = id
|
||||
? await prisma.consumer.update({
|
||||
where: {
|
||||
id
|
||||
},
|
||||
data: {
|
||||
editedValue: editedConsumer
|
||||
}
|
||||
})
|
||||
: await prisma.consumer.create({
|
||||
data: {
|
||||
editedValue: editedConsumer
|
||||
}
|
||||
});
|
||||
|
||||
const newPurchaseList = await prisma.purchaseList.create({
|
||||
data: {
|
||||
consumerId: consumer.id
|
||||
}
|
||||
});
|
||||
|
||||
console.info(
|
||||
`Generating purchase list with id ${newPurchaseList.id} for consumer with id ${consumer.id}`
|
||||
`Generating new purchase list for consumer with id ${id ?? 'N/A'}`
|
||||
);
|
||||
|
||||
try {
|
||||
@@ -58,21 +37,33 @@ export async function generate(
|
||||
(acc, week) => acc + week.purchases.length,
|
||||
0
|
||||
);
|
||||
|
||||
console.info(
|
||||
`Generated ${totalPurchases} purchases for purchase list with id ${newPurchaseList.id} for consumer wth id ${id}`
|
||||
`Generated ${totalPurchases} purchases for new purchase list for consumer wth id ${id}`
|
||||
);
|
||||
|
||||
await prisma.purchaseList.update({
|
||||
where: {
|
||||
id: newPurchaseList.id
|
||||
},
|
||||
data: {
|
||||
value: validPurchases.data
|
||||
}
|
||||
const [consumer, purchaseList] = await prisma.$transaction(async tx => {
|
||||
const consumer = id
|
||||
? await tx.consumer.update({
|
||||
where: { id },
|
||||
data: { editedValue: editedConsumer }
|
||||
})
|
||||
: await tx.consumer.create({
|
||||
data: { editedValue: editedConsumer }
|
||||
});
|
||||
|
||||
const purchaseList = await tx.purchaseList.create({
|
||||
data: {
|
||||
consumerId: consumer.id,
|
||||
value: validPurchases.data
|
||||
}
|
||||
});
|
||||
|
||||
return [consumer, purchaseList];
|
||||
});
|
||||
|
||||
console.info(
|
||||
`Purchase list with id ${newPurchaseList.id} for consumer with id ${id} stored in database.`
|
||||
`Purchase list with id ${purchaseList.id} for consumer with id ${consumer.id} stored in database.`
|
||||
);
|
||||
|
||||
return validPurchases.data;
|
||||
|
||||
Reference in New Issue
Block a user