yeg
2026-09-07 790d1bd746b46367de4d064904cf85047853462c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { request, type ApiResponse } from './request'
export interface SpliceSelection { testId: number; testBatteryId: number }
export interface SpliceCandidate { selection: SpliceSelection; name: string; type: string; groupId: number; group: string; batteryNo: string; startedAt: number }
export interface SpliceMatrix { segments: Array<Record<string, unknown>>; cycleNos: number[] }
export interface SpliceSummary { id: number; name: string; creator: string; createdAt: string }
export interface SavedSpliceReport extends SpliceSummary { description?: string; selections: SpliceSelection[]; segments: Array<Record<string, unknown>>; cycleNos: number[]; settings: Record<string, unknown>; versionNo: number; operatorName: string; versionCreatedAt: number; changeSummary: string }
const root='/system/splice-report'
async function data<T>(path:string, method='GET', body?:unknown){return (await request<ApiResponse & {data:T}>(`${root}${path}`,{method,...(body===undefined?{}:{body:JSON.stringify(body)})})).data}
export function listSpliceReports(){return request<ApiResponse & {rows:SpliceSummary[]}>(`${root}/list`).then(r=>r.rows)}
export function getSpliceSources(){return data<SpliceCandidate[]>('/sources')}
export function previewSpliceReport(s:SpliceSelection[]){return data<SpliceMatrix>('/preview','POST',s)}
export function createSpliceReport(body:Record<string, unknown>){return data<SavedSpliceReport>('','POST',body)}
export function getSpliceReport(id:number, editing=false){return data<SavedSpliceReport>(`/${id}${editing?'/editing':''}`)}
export function editSpliceReport(id:number,body:Record<string, unknown>){return data<SavedSpliceReport>(`/${id}/versions`,'POST',body)}
export function deleteSpliceReport(id:number){return data<void>(`/${id}`,'DELETE')}