feat(helpdesk): add handover protocol management

Implement handover protocols as a new entity in the helpdesk module,
allowing users to create fillable protocol records from admin-defined
software product schemas.

Key additions:
- DB migration (helpdesk_handovers table) with tenant scope
- HandoverService with status workflow (draft/in_progress/completed/archived)
- Three-tier permissions (view/create/manage)
- Two-step creation wizard (Stripe-style assistant)
- Grid.js list page with search and status filter
- Edit/detail page with aside metadata and status controls
- Reusable core autocomplete lookup component (app-lookup-field)
- Debitor lookup data endpoint for autocomplete
- Dynamic form rendering from schema snapshots
- 11 PHPUnit tests for HandoverService
- DE+EN i18n translations (48 keys each)

Also includes: PHPStan fixes (dead code removal, stale baseline cleanup),
software product edit title improvement, fieldset simplification,
and Stripe-style hover for schema preview.

Workflow: HD-HANDOVERS-001 (.agents/runs/HD-HANDOVERS-001/)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-15 20:42:41 +02:00
parent 57b7920098
commit a26c106083
34 changed files with 2572 additions and 91 deletions

View File

@@ -42,6 +42,11 @@ return [
['path' => 'helpdesk/software-products', 'target' => 'helpdesk/software-products'],
['path' => 'helpdesk/software-products-data', 'target' => 'helpdesk/software-products-data'],
['path' => 'helpdesk/software-products/edit/{code}', 'target' => 'helpdesk/software-products/edit'],
['path' => 'helpdesk/handovers', 'target' => 'helpdesk/handovers'],
['path' => 'helpdesk/handovers-data', 'target' => 'helpdesk/handovers-data'],
['path' => 'helpdesk/handovers/create', 'target' => 'helpdesk/handovers/create'],
['path' => 'helpdesk/handovers/edit/{id}', 'target' => 'helpdesk/handovers/edit'],
['path' => 'helpdesk/debitor-lookup-data', 'target' => 'helpdesk/debitor-lookup-data'],
],
'public_paths' => [],
@@ -101,6 +106,24 @@ return [
'active' => true,
'is_system' => true,
],
[
'key' => 'helpdesk.handovers.view',
'description' => 'View helpdesk handover protocols',
'active' => true,
'is_system' => true,
],
[
'key' => 'helpdesk.handovers.create',
'description' => 'Create and edit own helpdesk handover protocols',
'active' => true,
'is_system' => true,
],
[
'key' => 'helpdesk.handovers.manage',
'description' => 'Manage all helpdesk handover protocols (edit any, archive)',
'active' => true,
'is_system' => true,
],
],
'search_resources' => [],