Assessor_2.0/src/domain/candidate-mapping.ts

51 lines
1.4 KiB
TypeScript

import type { CanonicalFieldRole } from './canonical-model';
import type {
ImportDiagnostic,
ImportProcessingState,
ImportProcessorReference,
SourceLocator
} from './import-intermediate';
import type {
FieldRoleAlternative,
RecognitionConfidence,
RecognitionDecisionSource,
RecognitionEvidence
} from './import-recognition';
import type { SourceFieldCandidate } from './source-extraction';
export interface CandidateFieldMappingDecision {
id: string;
fieldKey: string;
sourceLabel: string;
sourceScope: Pick<SourceLocator, 'tableIndex'>;
proposedRole: CanonicalFieldRole | null;
appliedRole: CanonicalFieldRole;
alternatives: FieldRoleAlternative[];
confidence: RecognitionConfidence;
evidence: RecognitionEvidence[];
decisionSource: RecognitionDecisionSource;
requiresConfirmation: boolean;
}
export interface MappedCandidateField extends SourceFieldCandidate {
mappingDecisionId: string;
role: CanonicalFieldRole;
}
export interface MappedFindingCandidate {
version: 1;
id: string;
source: SourceLocator;
fields: MappedCandidateField[];
}
export interface CandidateMappingResult {
version: 1;
extractor: ImportProcessorReference;
mappingProfile: ImportProcessorReference;
fieldDecisions: CandidateFieldMappingDecision[];
candidates: MappedFindingCandidate[];
diagnostics: ImportDiagnostic[];
processing: ImportProcessingState;
}