import type { ReferralContactAttempt } from '../services/ReferralWorkbenchService'; /** An omitted or unreadable projection must not become an empty history. */ export const readReferralContacts = (raw: unknown): ReferralContactAttempt[] | undefined => { if (!Array.isArray(raw)) return undefined; const valid = raw.every(attempt => attempt && typeof attempt === 'object' && ['phone', 'fax', 'in-system'].includes(attempt.method) && typeof attempt.occurredAt === 'string' && Number.isFinite(Date.parse(attempt.occurredAt)) && ['id', 'recipient', 'spokeWith', 'outcome', 'recordedBy'].every(field => attempt[field] === undefined || typeof attempt[field] === 'string')); if (!valid) return undefined; return raw.map(({ method, occurredAt, id, recipient, spokeWith, outcome, recordedBy }) => ({ method, occurredAt, id, recipient, spokeWith, outcome, recordedBy })); };