feat(codes): server actions + seed/scripts gebruiken code overal

- actions/tasks.ts: saveTask + createTaskAction (legacy form) gebruiken
  createWithCodeRetry + generateNextTaskCode; persisten product_id
  denormalisatie. P2002 op user-supplied code wordt 422 met fieldError
- actions/pbis.ts + stories.ts: insert-helpers nemen verplichte string;
  update laat code-veld weg uit data wanneer null (kan niet meer leeg
  worden gemaakt nu DB NOT NULL is)
- actions/todos.ts: promoteTodoToPbi/Story genereren expliciet een code
  voor het transactiestart (kan niet binnen $transaction array retryen)
- prisma/seed.ts: per-product task counter geeft elke task een T-N code
- scripts/insert-milestone.ts: createMany berekent maxN voor product
  en assigneert T-{maxN+i+1} per nieuwe task

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-04 08:36:41 +02:00
parent 829122d437
commit 7c82a736f5
6 changed files with 82 additions and 32 deletions

View file

@ -80,7 +80,7 @@ export async function createStoryAction(_prevState: unknown, formData: FormData)
})
const sort_order = (last?.sort_order ?? 0) + 1.0
const insert = (code: string | null) =>
const insert = (code: string) =>
prisma.story.create({
data: {
pbi_id: parsed.data.pbiId,
@ -163,7 +163,7 @@ export async function updateStoryAction(_prevState: unknown, formData: FormData)
await prisma.story.update({
where: { id: parsed.data.id },
data: {
code,
...(code ? { code } : {}),
title: parsed.data.title,
description: parsed.data.description ?? null,
acceptance_criteria: parsed.data.acceptance_criteria ?? null,