Files
Jyotisha/frontend/src/lib/consultation-model-selection.ts
T
2026-07-17 14:09:57 +08:00

19 lines
453 B
TypeScript

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