feat(kvot): debitera AI-skanning PER BILD + fixa dubbeldebitering
Johans beslut: en skanning debiteras per bild (6 foton = 6 skanningar), streckkod gratis. consumeAiScan tar nu units=imageCount och kollar att hela ryms. Refunden ger tillbaka lika manga (antal bilder) vid misslyckat jobb. Appen kapar antalet foton till kvarvarande kvot och gar till paywall om 0 (servern ar dock den slutgiltiga grinden). Hittade + fixade en PRE-EXISTING bugg pa vagen: kvoten drogs bade vid skapande (consumeAiScan) OCH vid slutford analys (recordAiUsage aiScans:1) -> varje LYCKAD skanning kostade 2 enheter, dolt av att appen bara uppdaterade raknaren vid start. Nu dras kvoten exakt en gang, vid skapandet. Enbildsanvandare far alltsa nu sina fulla 5 gratis-skanningar (var tidigare ~2,5).
This commit is contained in:
@@ -116,13 +116,15 @@ export async function processScanJob(ctx: WorkerContext, scanJobId: string): Pro
|
||||
}
|
||||
}
|
||||
|
||||
// Bokför verklig AI-kostnad/tokens utan PII (spec §45).
|
||||
// Bokför verklig AI-kostnad/tokens utan PII (spec §45). Kvoten (aiScans) drogs
|
||||
// redan vid skapandet (consumeAiScan, per bild) – räkna INTE upp den igen här,
|
||||
// annars dubbeldebiteras varje lyckad skanning.
|
||||
if (result.costUsd != null || result.inputTokens || result.outputTokens) {
|
||||
await recordAiUsage(ctx.db, job.userId, {
|
||||
costUsd: result.costUsd ?? 0,
|
||||
inputTokens: result.inputTokens ?? 0,
|
||||
outputTokens: result.outputTokens ?? 0,
|
||||
aiScans: 1,
|
||||
aiScans: 0,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user