mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-16 12:36:07 +00:00
🐛 fix(image-generation): update chargeBeforeGenerate to return ChargeResult and include configForDatabase in parameters
This commit is contained in:
@@ -1,15 +1,29 @@
|
||||
import { type NewGeneration, type NewGenerationBatch } from '@/database/schemas';
|
||||
import type { CreateImageServicePayload } from '@/server/routers/lambda/image';
|
||||
|
||||
interface ChargeParams {
|
||||
configForDatabase: CreateImageServicePayload['params'];
|
||||
generationParams: CreateImageServicePayload['params'];
|
||||
generationTopicId?: string;
|
||||
generationTopicId: string;
|
||||
imageNum: number;
|
||||
model: string;
|
||||
provider: string;
|
||||
userId: string;
|
||||
}
|
||||
|
||||
type ChargeResult =
|
||||
| undefined
|
||||
| {
|
||||
data: {
|
||||
batch: NewGenerationBatch;
|
||||
generations: NewGeneration[];
|
||||
};
|
||||
success: true;
|
||||
};
|
||||
|
||||
export async function chargeBeforeGenerate(
|
||||
// eslint-disable-next-line unused-imports/no-unused-vars, @typescript-eslint/no-unused-vars
|
||||
params: ChargeParams,
|
||||
): Promise<void> {}
|
||||
): Promise<ChargeResult> {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@@ -134,7 +134,8 @@ export const imageRouter = router({
|
||||
// 防御性检测:确保没有完整URL进入数据库
|
||||
validateNoUrlsInConfig(configForDatabase, 'configForDatabase');
|
||||
|
||||
await chargeBeforeGenerate({
|
||||
const chargeResult = await chargeBeforeGenerate({
|
||||
configForDatabase,
|
||||
generationParams: params,
|
||||
generationTopicId,
|
||||
imageNum,
|
||||
@@ -142,6 +143,9 @@ export const imageRouter = router({
|
||||
provider,
|
||||
userId,
|
||||
});
|
||||
if (chargeResult) {
|
||||
return chargeResult;
|
||||
}
|
||||
|
||||
// 步骤 1: 在事务中原子性地创建所有数据库记录
|
||||
const { batch: createdBatch, generationsWithTasks } = await serverDB.transaction(async (tx) => {
|
||||
|
||||
Reference in New Issue
Block a user