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:
@@ -131,6 +131,9 @@ export type SensitivityLevel = typeof SensitivityLevel[keyof typeof SensitivityL
|
||||
|
||||
// ── Shortlist Status ──────────────────────────────────────────────────────────
|
||||
export const ShortlistStatus = {
|
||||
DRAFT: 'DRAFT',
|
||||
REVIEW_READY: 'REVIEW_READY',
|
||||
FINALIZED: 'FINALIZED',
|
||||
ACTIVE: 'ACTIVE',
|
||||
SHARED: 'SHARED',
|
||||
ARCHIVED: 'ARCHIVED',
|
||||
|
||||
+24
-1
@@ -1,9 +1,30 @@
|
||||
import type { ShortlistStatus } from './enums'
|
||||
|
||||
export interface ShortlistItem {
|
||||
propertyId: string
|
||||
resultId: string
|
||||
resultType: string
|
||||
title: string
|
||||
matchScore: number
|
||||
confidenceScore?: number
|
||||
dataQualityScore?: number
|
||||
sourceLabel?: string
|
||||
addedAt: string
|
||||
addedBy: string
|
||||
note?: string
|
||||
propertyId?: string
|
||||
}
|
||||
|
||||
export interface ShortlistItemInput {
|
||||
resultId: string
|
||||
resultType: string
|
||||
title: string
|
||||
matchScore: number
|
||||
confidenceScore?: number
|
||||
dataQualityScore?: number
|
||||
sourceLabel?: string
|
||||
addedBy: string
|
||||
note?: string
|
||||
propertyId?: string
|
||||
}
|
||||
|
||||
export interface Shortlist {
|
||||
@@ -11,6 +32,8 @@ export interface Shortlist {
|
||||
title: string
|
||||
description?: string
|
||||
needId?: string
|
||||
ownerUserId?: string
|
||||
decisionBriefId?: string
|
||||
items: ShortlistItem[]
|
||||
status: ShortlistStatus
|
||||
createdBy: string
|
||||
|
||||
Reference in New Issue
Block a user