import { card, input } from '@/pages/investment/shared'; export const financialCategories: Record = { banking: 'Banca', credit: 'Crédito e microfinanças', investment: 'Gestão de investimento', pensions: 'Fundos de pensões', insurance: 'Seguros e resseguros', intermediation: 'Mediação de seguros', exchange: 'Câmbio', payments: 'Pagamentos e serviços interbancários', supervision: 'Supervisão', other: 'Outras instituições', }; export const financialTypes: Record = { commercial_bank: 'Banco comercial', investment_bank: 'Banco de investimento', bank: 'Banco (tipo não especificado)', microbank: 'Microbanco', cooperative: 'Cooperativa de crédito', savings: 'Organização de poupança e empréstimo', investment_manager: 'Gestora de fundos de investimento', investment_company: 'Sociedade de investimento', pension_manager: 'Gestora de fundos de pensões', insurer: 'Seguradora', reinsurer: 'Resseguradora', microinsurer: 'Micro-seguradora', broker: 'Corretora de seguros', agent: 'Agente de seguros', reinsurance_broker: 'Corretor de resseguro', exchange_house: 'Casa de câmbio', electronic_money: 'Instituição de moeda electrónica', interbank: 'Serviços interbancários', supervisor: 'Supervisor', other: 'Outro tipo documentado', }; export type Classification = { institution_categories?: string[]; institution_types?: string[]; institution_services?: string[]; institution_status?: string; successor_key?: string | null; register_reference?: string | null; source_document_name?: string | null; source_document_sha256?: string | null; aliases?: string[]; source_rows?: { id: string; section: string; text: string }[]; }; export const evidenceLabels: Record = { reported: 'Reportado no documento', to_confirm: 'A confirmar', historical: 'Referência histórica', conflict: 'Informação divergente/identidade por confirmar', unlocated: 'Localização por confirmar', }; export function ClassificationSummary({ value }: { value: Classification }) { return (

Categoria e tipo da instituição

Categorias:{' '} {(value.institution_categories ?? []) .map((k) => financialCategories[k] ?? k) .join(' · ') || 'Por classificar'}

Tipos:{' '} {(value.institution_types ?? []) .map((k) => financialTypes[k] ?? k) .join(' · ') || 'Por classificar'}

{['merged','historical','unknown'].includes(value.institution_status??'') &&

{value.institution_status==='merged'?'Instituição integrada noutra entidade ou com actividade encerrada.':value.institution_status==='historical'?'Informação histórica.':'Situação actual por confirmar junto da instituição.'}

}
); } export function ClassificationFields({ value, change, needs, }: { value: Classification; change: (patch: Partial) => void; needs: Record; }) { const multiple = ( key: | 'institution_categories' | 'institution_types' | 'institution_services', label: string, options: Record, ) => ( ); return (
Categoria, tipo e serviço — Alterar {multiple( 'institution_categories', 'Categorias documentadas', financialCategories, )} {multiple( 'institution_types', 'Tipos documentados', financialTypes, )} {multiple( 'institution_services', 'Serviços identificados (não é oferta garantida)', needs, )}

As linhas originais e as classificações anteriores conservam-se nas versões. Não complete lacunas por inferência.

); }