import type { RecordBatchItem, RecordCreated } from '#/api/x/eln/records';

export class ElnRecordBatchParamError extends Error {}

export function resolveTestWorkItemIds(value: unknown): string[] {
  if (!Array.isArray(value) || !value.length) {
    throw new ElnRecordBatchParamError('请选择至少一个检验项');
  }
  const ids = value.map((item) => {
    if (typeof item !== 'string' || !item.trim()) {
      throw new ElnRecordBatchParamError('检验项选择无效');
    }
    return item.trim();
  });
  return [...new Set(ids)];
}

export function canOpenSingleRecord(testWorkItemIds: string[], item: RecordBatchItem | undefined): item is RecordBatchItem & { created: RecordCreated } {
  return testWorkItemIds.length === 1 && Boolean(item?.created) && ['CREATED', 'EXISTING'].includes(item?.status || '');
}

export function statusLabel(status: RecordBatchItem['status']) {
  if (status === 'CREATED') return '新建成功';
  if (status === 'EXISTING') return '已存在';
  return '创建失败';
}
