yeg
2026-09-08 f1b5b2be3ece578d9279089e4824154a60006b3b
src/api/formationReports.ts
@@ -5,7 +5,7 @@
export interface FormationSelection { testId: number; testBatteryId: number }
export interface FormationCandidate { selection: FormationSelection; name: string; type: string; groupId: number; batteryGroup: string; batteryNo: string }
export interface FormationField { key: string; scope: 'detail' | 'cycle'; kind: 'battery' | 'metric' | 'manual'; displayName: string; unit: string; fieldDefinitionId?: number | null }
export interface FormationChargeStep { stepNo: number; name: string; stepType: string; endVoltage: number | null }
export interface FormationChargeStep { stepNo: number; name: string; stepType: string; endVoltage: number | null; direction?: 'CHARGE' | 'DISCHARGE' | 'UNKNOWN' }
export interface FormationItem {
  source: FormationCandidate
  cycleNos: number[]
@@ -14,14 +14,17 @@
  businessFields: Array<{ fieldDefinitionId: number; fieldName: string; fieldValue: string | null }>
  chargeSteps: Record<string, FormationChargeStep[]>
  curves?: Record<string, { zeroTime: number | null; records: PersistedTestRecord[] }>
  stepCurves?: Record<string, Record<string, { zeroTime: number | null; records: PersistedTestRecord[] }>>
}
export interface FormationMatrix { items: FormationItem[]; cycleNos: number[] }
export interface FormationSettings { fields: FormationField[]; values: Record<string, string>; chargeStepSelections: Record<string, number>; metrics?: ReportMetricKey[]; seriesColors?: Record<string, string> }
export interface FormationStepSelection { charge: number[]; discharge: number[] }
export interface FormationSettings { fields: FormationField[]; values: Record<string, string>; chargeStepSelections: Record<string, number>; metrics?: ReportMetricKey[]; seriesColors?: Record<string, string>; manualChargeSteps?: Record<string, number[]>; curveStepSelections?: Record<string, FormationStepSelection>; hiddenSeriesKeys?: string[]; activeCycle?: number | null }
export interface FormationSummary { id: number; name: string; creator: string; createdAt: number; testName?: string; batteryGroup?: string }
export interface FormationVersion { versionNo: number; operatorName: string; createdAt: number; changeSummary: string }
export interface SavedFormationReport extends FormationSummary, FormationMatrix {
  description: string; settings: FormationSettings; versionNo: number; operatorName: string; versionCreatedAt: number; changeSummary: string
  units: Record<string, string>; displayUnits: Record<string, string>
  curveMode?: 'actual-steps'
}
export interface FormationTemplate { id: number; name: string; type: 'formation'; fields: FormationField[]; creator: string; updatedAt: number }
export interface CreateFormationReport { name: string; description: string; selections: FormationSelection[]; settings: FormationSettings }