import request from '@/utils/http' export type SampleStorageCertQcDetail = { sampleCode: string labFlowCode: string protocolCode: string motherName: string sampleTypeName: string sampleTypeKey: string | null collectionProtocolId?: string qcWorkOrderId?: string filledFlag: boolean payload: Record prefill?: Record editableFieldKeys?: string[] canConfigureAcl?: boolean aclStrict?: boolean } export type StorageCertQcAclScope = 'qc' | 'production' export type StorageCertQcAclDetail = { scope: StorageCertQcAclScope fieldKeys: string[] userIds: string[] users: Array<{ id: string; nickName: string; userName: string }> configuredFlag: boolean aclStrict: boolean } export function fetchSampleStorageCertQc(sampleCode: string) { return request.get({ url: `/web/admin/sample-storage-cert-qc/${encodeURIComponent(sampleCode)}` }) } export function saveSampleStorageCertQc( sampleCode: string, data: { payload: Record; qcWorkOrderId?: string } ) { return request.put({ url: `/web/admin/sample-storage-cert-qc/${encodeURIComponent(sampleCode)}`, data }) } export function fetchSampleStorageCertQcAcl(scope: StorageCertQcAclScope) { return request.get({ url: `/web/admin/sample-storage-cert-qc-acl/${encodeURIComponent(scope)}` }) } export function saveSampleStorageCertQcAcl( scope: StorageCertQcAclScope, data: { fieldKeys: string[]; userIds: string[] } ) { return request.put({ url: `/web/admin/sample-storage-cert-qc-acl/${encodeURIComponent(scope)}`, data }) }