File size: 1,744 Bytes
1c34a81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import type { LucideIcon } from 'lucide-react'
import type { ReactNode } from 'react'

export type ScreenName = 'Dashboard' | 'Models' | 'Inputs' | 'Scenarios' | 'Formulas' | 'Projections' | 'Runs' | 'Results' | 'Reports' | 'Investigate' | 'Mentor' | 'Admin / Settings'

export type NavItem = { label: ScreenName; icon: LucideIcon; group?: string }
export type ModelStatus = 'Validated' | 'Needs review' | 'Draft'
export type LineageStatus = 'Shared' | 'Inherited' | 'Overridden' | 'Local'
export type ExecutionStatus = 'Completed' | 'Running' | 'Paused' | 'Cancelled' | 'Stale' | 'Validated' | 'Needs review'

export type Model = { name: string; version: string; basis: string; product: string; status: ModelStatus; updated: string; owner: string; runs: number }
export type RunRecord = { name: string; scenario: string; date: string; modified: string }
export type RunSetRun = {
  id: string
  projectionSetId: string
  projectionSetName: string
  scenarioId: string
  scenarioName: string
  status: 'Queued' | 'Running' | 'Completed' | 'Failed'
  progress: { total: number; done: number; percent: number; unit: 'policies'; eta_seconds?: number }
  events: { id: number; timestamp: string; level: 'info' | 'warning' | 'error'; step: string; message: string }[]
}
export type RunSetRecord = {
  id: string
  projectId: string
  name: string
  notes: string | null
  submittedAt: string
  status: 'Queued' | 'Running' | 'Completed' | 'Failed'
  projectionSetIds: string[]
  scenarioIds: string[]
  runs: RunSetRun[]
}
export type Investigation = { title: string; model: string; scenario: string; period: string; time: string }
export type ActionButtonProps = { onAction?: () => void; actionIcon?: ReactNode }