feat(ST-vi5iff4s): SoloTask-interface + Prisma-queries uitbreiden met PBI-velden (#116)

pbi_code, pbi_title, pbi_description (nullable) toegevoegd aan SoloTask-interface.
Desktop en mobile solo-page: story.pbi select + mapping via ?. en ?? null.
Test-fixtures bijgewerkt (3 bestanden). 72 testfiles groen, tsc + build slagen.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-06 03:30:11 +02:00 committed by GitHub
parent d819d29b04
commit be8cd4d02c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 20 additions and 0 deletions

View file

@ -94,6 +94,9 @@ const TODO_TASK = {
story_code: 'ST-1', story_code: 'ST-1',
story_title: 'Story 1', story_title: 'Story 1',
task_code: 'ST-1.1', task_code: 'ST-1.1',
pbi_code: null,
pbi_title: null,
pbi_description: null,
} }
const DEFAULT_PROPS = { const DEFAULT_PROPS = {

View file

@ -65,6 +65,9 @@ const baseTask: SoloTask = {
story_code: 'ST-100', story_code: 'ST-100',
story_title: 'Test Story', story_title: 'Test Story',
task_code: 'ST-100.1', task_code: 'ST-100.1',
pbi_code: null,
pbi_title: null,
pbi_description: null,
} }
const DEFAULT_PROPS = { const DEFAULT_PROPS = {

View file

@ -17,6 +17,9 @@ const baseTask = (id: string, overrides: Partial<SoloTask> = {}): SoloTask => ({
story_code: 'ST-100', story_code: 'ST-100',
story_title: 'Original Story', story_title: 'Original Story',
task_code: 'ST-100.1', task_code: 'ST-100.1',
pbi_code: null,
pbi_title: null,
pbi_description: null,
...overrides, ...overrides,
}) })

View file

@ -46,6 +46,7 @@ export default async function SoloProductPage({ params }: Props) {
code: true, code: true,
title: true, title: true,
tasks: { select: { id: true }, orderBy: { sort_order: 'asc' } }, tasks: { select: { id: true }, orderBy: { sort_order: 'asc' } },
pbi: { select: { code: true, title: true, description: true } },
}, },
}, },
}, },
@ -86,6 +87,9 @@ export default async function SoloProductPage({ params }: Props) {
story_code: t.story.code, story_code: t.story.code,
story_title: t.story.title, story_title: t.story.title,
task_code: t.code, task_code: t.code,
pbi_code: t.story.pbi?.code ?? null,
pbi_title: t.story.pbi?.title ?? null,
pbi_description: t.story.pbi?.description ?? null,
})) }))
const unassignedStories: UnassignedStory[] = rawUnassigned.map(s => ({ const unassignedStories: UnassignedStory[] = rawUnassigned.map(s => ({

View file

@ -51,6 +51,7 @@ export default async function MobileSoloProductPage({ params }: Props) {
code: true, code: true,
title: true, title: true,
tasks: { select: { id: true }, orderBy: { sort_order: 'asc' } }, tasks: { select: { id: true }, orderBy: { sort_order: 'asc' } },
pbi: { select: { code: true, title: true, description: true } },
}, },
}, },
}, },
@ -91,6 +92,9 @@ export default async function MobileSoloProductPage({ params }: Props) {
story_code: t.story.code, story_code: t.story.code,
story_title: t.story.title, story_title: t.story.title,
task_code: t.code, task_code: t.code,
pbi_code: t.story.pbi?.code ?? null,
pbi_title: t.story.pbi?.title ?? null,
pbi_description: t.story.pbi?.description ?? null,
})) }))
const unassignedStories: UnassignedStory[] = rawUnassigned.map(s => ({ const unassignedStories: UnassignedStory[] = rawUnassigned.map(s => ({

View file

@ -32,6 +32,9 @@ export interface SoloTask {
story_code: string | null story_code: string | null
story_title: string story_title: string
task_code: string | null task_code: string | null
pbi_code: string | null
pbi_title: string | null
pbi_description: string | null
} }
export interface SoloBoardProps { export interface SoloBoardProps {