feat: F015 shortlist management

3-panel Shortlists page with left list, center detail, right decision brief panel. AddToShortlistDialog wired into result feed cards and match detail. Full DRAFT→REVIEW_READY→FINALIZED workflow, AI-generated decision brief draft, duplicate prevention, and compare-view integration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-16 21:10:06 +02:00
parent 2753d1717c
commit 65130efca7
22 changed files with 1079 additions and 195 deletions
+40 -4
View File
@@ -8,8 +8,32 @@ export const mockShortlists: Shortlist[] = [
description: 'Beste Bürooptionen für Innovatech AG',
needId: 'need-001',
items: [
{ propertyId: 'prop-001', addedAt: '2025-03-01T10:00:00Z', note: 'Erste Wahl' },
{ propertyId: 'prop-004', addedAt: '2025-03-02T14:30:00Z', note: 'Interessante Alternative' },
{
resultId: 'match-001',
resultType: 'VERIFIED_PORTFOLIO',
title: 'Bürofläche Zollstrasse 12',
matchScore: 88,
confidenceScore: 0.92,
dataQualityScore: 0.85,
sourceLabel: 'Portfolio',
addedAt: '2025-03-01T10:00:00Z',
addedBy: 'admin@ideal-sharing.ch',
note: 'Erste Wahl',
propertyId: 'prop-001',
},
{
resultId: 'match-004',
resultType: 'VERIFIED_PORTFOLIO',
title: 'Gemischte Gewerbeeinheit Europaallee',
matchScore: 74,
confidenceScore: 0.78,
dataQualityScore: 0.80,
sourceLabel: 'Portfolio',
addedAt: '2025-03-02T14:30:00Z',
addedBy: 'admin@ideal-sharing.ch',
note: 'Interessante Alternative',
propertyId: 'prop-004',
},
],
status: ShortlistStatus.ACTIVE,
createdBy: 'user-001',
@@ -23,9 +47,21 @@ export const mockShortlists: Shortlist[] = [
description: 'Auswahl für Schweizer Logistik GmbH',
needId: 'need-002',
items: [
{ propertyId: 'prop-002', addedAt: '2025-03-05T09:00:00Z', note: 'Perfekte Grösse' },
{
resultId: 'match-002',
resultType: 'VERIFIED_PORTFOLIO',
title: 'Lagerfläche Hardstrasse 44',
matchScore: 82,
confidenceScore: 0.88,
dataQualityScore: 0.90,
sourceLabel: 'Portfolio',
addedAt: '2025-03-05T09:00:00Z',
addedBy: 'admin@ideal-sharing.ch',
note: 'Perfekte Grösse',
propertyId: 'prop-002',
},
],
status: ShortlistStatus.SHARED,
status: ShortlistStatus.REVIEW_READY,
createdBy: 'user-001',
organizationId: 'org-wincasa',
sharedWith: ['client@schweizer-logistik.ch'],