Files
Jyotisha/frontend/src/lib/consultation-model-selection.ts
T
2026-08-06 20:15:08 +08:00

19 lines
470 B
TypeScript

export async function reserveConsultationModel<
Model extends { readonly id: string },
Reservation,
>(
modelId: string,
resolveModel: (modelId: string) => Model | null,
reserveCredit: (model: Model) => Promise<Reservation>,
) {
const model = resolveModel(modelId);
if (!model) return { status: "unavailable" } as const;
return {
status: "reserved",
model,
usageModelId: model.id,
reservation: await reserveCredit(model),
} as const;
}