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

@ -123,6 +123,7 @@ async function main() {
const milestones = await loadBacklog(root)
console.log(`Loaded backlog: ${milestones.length} milestones, ${milestones.reduce((acc, m) => acc + m.stories.length, 0)} stories`)
let productTaskCounter = 0
for (const ms of milestones) {
const pbi = await prisma.pbi.create({
data: {
@ -174,10 +175,13 @@ async function main() {
})
for (const t of s.tasks) {
productTaskCounter += 1
await prisma.task.create({
data: {
story_id: story.id,
product_id: product.id,
sprint_id: inSprint ? sprint.id : null,
code: `T-${productTaskCounter}`,
title: t.title,
description: t.description,
priority: ms.priority,