// PBI-67: snapshot-helper voor ClaudeJob.requested_*-velden. // // Roep hem aan vóór elke `prisma.claudeJob.create({ data: { ... } })` en spread // het resultaat in `data`. Doet één extra Product-query (en optioneel Task) // om de override-cascade in te vullen op enqueue-tijd. Bij claim (in scrum4me- // mcp/wait-for-job) wordt dezelfde resolver opnieuw aangeroepen — als // requested_* dan al gezet zijn winnen die boven product/kind-defaults. import { prisma } from '@/lib/prisma' import { resolveJobConfig, snapshotFromConfig, type ClaudeJobSnapshotFields } from '@/lib/job-config' export async function getJobConfigSnapshot(opts: { kind: string productId: string taskId?: string | null }): Promise { const [product, task] = await Promise.all([ prisma.product.findUnique({ where: { id: opts.productId }, select: { preferred_model: true, thinking_budget_default: true, preferred_permission_mode: true, }, }), opts.taskId ? prisma.task.findUnique({ where: { id: opts.taskId }, select: { requires_opus: true }, }) : Promise.resolve(null), ]) const cfg = resolveJobConfig( { kind: opts.kind }, product ?? {}, task ?? undefined, ) return snapshotFromConfig(cfg) }