462 lines
23 KiB
TypeScript
462 lines
23 KiB
TypeScript
/**
|
|
* Mock customer data for visual design & demo.
|
|
* Each client has realistic policies, claims, payments, and activity.
|
|
*/
|
|
|
|
export type MockPolicy = {
|
|
id: string
|
|
line: string
|
|
carrier: string
|
|
product: string
|
|
premium: number
|
|
status: 'Active' | 'Pending' | 'Lapsed' | 'Cancelled'
|
|
renewal: string
|
|
icon: string
|
|
details?: string
|
|
referralChannel?: string
|
|
}
|
|
|
|
export type MockClaim = {
|
|
id: string
|
|
policy: string
|
|
type: string
|
|
date: string
|
|
amount: number
|
|
status: 'In progress' | 'Resolved' | 'Denied' | 'Under review'
|
|
}
|
|
|
|
export type MockPayment = {
|
|
date: string
|
|
amount: number
|
|
policy: string
|
|
method: string
|
|
status: 'Paid' | 'Pending' | 'Overdue' | 'Failed'
|
|
}
|
|
|
|
export type MockActivityEvent = {
|
|
date: string
|
|
text: string
|
|
type: 'claim' | 'payment' | 'renewal' | 'quote' | 'note' | 'policy' | 'onboarding'
|
|
}
|
|
|
|
/**
|
|
* Customer tier — derived from data completeness & policy status:
|
|
* quick_lead — minimal capture (name + phone/email only)
|
|
* lead — profile info but no policies yet
|
|
* customer — has at least one active policy
|
|
* cancelled — had policies but all cancelled / lapsed
|
|
*/
|
|
export type CustomerTier = 'quick_lead' | 'lead' | 'customer' | 'cancelled'
|
|
|
|
export type MockCustomer = {
|
|
id: string
|
|
name: string
|
|
initials: string
|
|
type: 'Individual' | 'Corporate'
|
|
documentId: string
|
|
email: string
|
|
phone: string
|
|
birthDate: string
|
|
gender: string
|
|
address: string
|
|
since: string
|
|
agent: string
|
|
preferredLang: string
|
|
tags: string[]
|
|
policies: MockPolicy[]
|
|
claims: MockClaim[]
|
|
payments: MockPayment[]
|
|
activity: MockActivityEvent[]
|
|
paymentStatus: 'Current' | 'Overdue' | 'Grace period' | 'N/A'
|
|
}
|
|
|
|
/** Derive tier from customer data */
|
|
export function customerTier(c: MockCustomer): CustomerTier {
|
|
if (c.policies.length === 0 && (!c.documentId || c.documentId === '—') && !c.address) return 'quick_lead'
|
|
if (c.policies.length === 0) return 'lead'
|
|
const hasActive = c.policies.some(p => p.status === 'Active' || p.status === 'Pending')
|
|
if (!hasActive) return 'cancelled'
|
|
return 'customer'
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 1 · María Elena Pérez Solano */
|
|
/* ────────────────────────────────────────────── */
|
|
const maria: MockCustomer = {
|
|
id: 'cust-001',
|
|
name: 'María Elena Pérez Solano',
|
|
initials: 'MP',
|
|
type: 'Individual',
|
|
documentId: '1-0456-0812',
|
|
email: 'maria.perez@email.com',
|
|
phone: '+506 8834-2291',
|
|
birthDate: '1988-03-14',
|
|
gender: 'Female',
|
|
address: 'San José, Escazú, Trejos Montealegre',
|
|
since: '2021-06-10',
|
|
agent: 'Ana R.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['VIP', 'Referral source'],
|
|
paymentStatus: 'Current',
|
|
policies: [
|
|
{ id: 'POL-2024-4412', line: 'Auto', carrier: 'ASSA', product: '2023 Toyota RAV4 — SJO-4412', premium: 1840, status: 'Active', renewal: '2025-06-15', icon: 'i-heroicons-truck', details: 'Comprehensive • $500 deductible', referralChannel: 'Direct walk-in' },
|
|
{ id: 'POL-2024-7788', line: 'Life', carrier: 'INS', product: 'Individual health plan', premium: 3200, status: 'Active', renewal: '2025-09-01', icon: 'i-heroicons-heart', details: 'Gold tier • Dental included', referralChannel: 'Direct walk-in' },
|
|
{ id: 'POL-2023-1190', line: 'Life', carrier: 'Mapfre', product: 'Term life — 20yr, $250K', premium: 960, status: 'Active', renewal: '2026-01-10', icon: 'i-heroicons-shield-check', details: 'Beneficiary: Carlos Pérez (spouse)', referralChannel: 'Cross-sell' },
|
|
],
|
|
claims: [
|
|
{ id: 'CL-2891', policy: 'POL-2024-4412', type: 'Collision', date: '2025-02-18', amount: 4200, status: 'In progress' },
|
|
{ id: 'CL-2204', policy: 'POL-2024-7788', type: 'Medical reimbursement', date: '2024-08-05', amount: 1100, status: 'Resolved' },
|
|
],
|
|
payments: [
|
|
{ date: '2025-04-01', amount: 540, policy: 'POL-2024-4412', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-04-01', amount: 267, policy: 'POL-2024-7788', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 540, policy: 'POL-2024-4412', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 267, policy: 'POL-2024-7788', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 80, policy: 'POL-2023-1190', method: 'Transfer', status: 'Paid' },
|
|
],
|
|
activity: [
|
|
{ date: 'Today', text: 'Auto claim CL-2891 — adjuster report uploaded', type: 'claim' },
|
|
{ date: 'Yesterday', text: 'Health premium payment confirmed ($267)', type: 'payment' },
|
|
{ date: 'Mar 28', text: 'Renewal notice sent for Auto policy', type: 'renewal' },
|
|
{ date: 'Mar 15', text: 'Quote requested: Home insurance', type: 'quote' },
|
|
{ date: 'Feb 18', text: 'Collision claim filed — CL-2891', type: 'claim' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 2 · Roberto Jiménez Mora */
|
|
/* ────────────────────────────────────────────── */
|
|
const roberto: MockCustomer = {
|
|
id: 'cust-002',
|
|
name: 'Roberto Jiménez Mora',
|
|
initials: 'RJ',
|
|
type: 'Individual',
|
|
documentId: '3-0321-0654',
|
|
email: 'roberto.jimenez@correo.cr',
|
|
phone: '+506 7012-8845',
|
|
birthDate: '1975-11-22',
|
|
gender: 'Male',
|
|
address: 'Heredia, Belén, La Asunción',
|
|
since: '2019-02-15',
|
|
agent: 'Ana R.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Long-term client'],
|
|
paymentStatus: 'Current',
|
|
policies: [
|
|
{ id: 'POL-2023-3301', line: 'Auto', carrier: 'Qualitas', product: '2021 Hyundai Tucson — HER-9901', premium: 1520, status: 'Active', renewal: '2025-08-20', icon: 'i-heroicons-truck', details: 'Comprehensive • $750 deductible', referralChannel: 'Referral — client' },
|
|
{ id: 'POL-2023-3302', line: 'Auto', carrier: 'Qualitas', product: '2019 Honda CRV — HER-6632', premium: 1280, status: 'Active', renewal: '2025-08-20', icon: 'i-heroicons-truck', details: 'Comprehensive • $750 deductible • Spouse vehicle', referralChannel: 'Referral — client' },
|
|
{ id: 'POL-2022-1010', line: 'Home', carrier: 'ASSA', product: 'Homeowner — Belén residence', premium: 890, status: 'Active', renewal: '2025-11-01', icon: 'i-heroicons-home-modern', details: 'Dwelling $185K • Contents $40K • Earthquake included', referralChannel: 'Cross-sell' },
|
|
{ id: 'POL-2024-5500', line: 'Life', carrier: 'Pan-American Life', product: 'Whole life — $150K', premium: 1440, status: 'Active', renewal: '2026-02-15', icon: 'i-heroicons-shield-check', details: 'Beneficiary: Lucía Jiménez (spouse)', referralChannel: 'Cross-sell' },
|
|
{ id: 'POL-2024-5501', line: 'General Risk', carrier: 'INS', product: 'Personal umbrella — $1M', premium: 420, status: 'Active', renewal: '2025-12-01', icon: 'i-heroicons-shield-exclamation', details: 'Excess liability over auto + home', referralChannel: 'Cross-sell' },
|
|
],
|
|
claims: [
|
|
{ id: 'CL-1840', policy: 'POL-2022-1010', type: 'Water damage', date: '2024-04-12', amount: 6800, status: 'Resolved' },
|
|
{ id: 'CL-2105', policy: 'POL-2023-3301', type: 'Windshield', date: '2024-11-28', amount: 450, status: 'Resolved' },
|
|
],
|
|
payments: [
|
|
{ date: '2025-04-01', amount: 233, policy: 'POL-2023-3301', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-04-01', amount: 197, policy: 'POL-2023-3302', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-04-01', amount: 74, policy: 'POL-2022-1010', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-04-01', amount: 120, policy: 'POL-2024-5500', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 233, policy: 'POL-2023-3301', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 197, policy: 'POL-2023-3302', method: 'Auto-debit', status: 'Paid' },
|
|
],
|
|
activity: [
|
|
{ date: 'Yesterday', text: 'Monthly premium auto-debited ($624)', type: 'payment' },
|
|
{ date: 'Mar 30', text: 'Umbrella policy annual review scheduled', type: 'renewal' },
|
|
{ date: 'Mar 15', text: 'Quote requested: Teen driver add-on', type: 'quote' },
|
|
{ date: 'Feb 20', text: 'Home policy endorsement — added jewelry rider', type: 'policy' },
|
|
{ date: 'Jan 10', text: 'Windshield claim CL-2105 resolved ($450)', type: 'claim' },
|
|
{ date: 'Dec 15', text: 'Year-end portfolio review completed', type: 'note' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 3 · Carolina Fallas Vargas */
|
|
/* ────────────────────────────────────────────── */
|
|
const carolina: MockCustomer = {
|
|
id: 'cust-003',
|
|
name: 'Carolina Fallas Vargas',
|
|
initials: 'CF',
|
|
type: 'Individual',
|
|
documentId: '2-0589-0177',
|
|
email: 'carolina.fallas@gmail.com',
|
|
phone: '+506 6198-3340',
|
|
birthDate: '1992-07-30',
|
|
gender: 'Female',
|
|
address: 'Cartago, Paraíso, Orosí',
|
|
since: '2023-09-05',
|
|
agent: 'Marco V.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['New client'],
|
|
paymentStatus: 'Current',
|
|
policies: [
|
|
{ id: 'POL-2024-8810', line: 'Auto', carrier: 'INS', product: '2024 Kia Sportage — CAR-1177', premium: 1650, status: 'Active', renewal: '2025-09-05', icon: 'i-heroicons-truck', details: 'Comprehensive • $500 deductible', referralChannel: 'Facebook campaign' },
|
|
{ id: 'POL-2024-8811', line: 'Home', carrier: 'ASSA', product: "Renter's insurance — Paraíso apt", premium: 320, status: 'Active', renewal: '2025-09-05', icon: 'i-heroicons-home-modern', details: 'Contents $25K • Liability $100K', referralChannel: 'Facebook campaign' },
|
|
],
|
|
claims: [],
|
|
payments: [
|
|
{ date: '2025-04-01', amount: 138, policy: 'POL-2024-8810', method: 'Credit card', status: 'Paid' },
|
|
{ date: '2025-04-01', amount: 27, policy: 'POL-2024-8811', method: 'Credit card', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 138, policy: 'POL-2024-8810', method: 'Credit card', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 27, policy: 'POL-2024-8811', method: 'Credit card', status: 'Paid' },
|
|
],
|
|
activity: [
|
|
{ date: 'Mar 25', text: 'Monthly payment processed ($165)', type: 'payment' },
|
|
{ date: 'Mar 10', text: 'Renter policy — updated inventory list', type: 'policy' },
|
|
{ date: 'Feb 05', text: 'Welcome call completed by Marco V.', type: 'onboarding' },
|
|
{ date: 'Sep 05', text: 'Policies issued — Auto + Renter', type: 'policy' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 4 · Luis Andrés Solís Calderón */
|
|
/* ────────────────────────────────────────────── */
|
|
const luis: MockCustomer = {
|
|
id: 'cust-004',
|
|
name: 'Luis Andrés Solís Calderón',
|
|
initials: 'LS',
|
|
type: 'Individual',
|
|
documentId: '1-1102-0398',
|
|
email: 'luis.solis@outlook.com',
|
|
phone: '+506 8455-7721',
|
|
birthDate: '1968-01-09',
|
|
gender: 'Male',
|
|
address: 'San José, Santa Ana, Pozos',
|
|
since: '2017-11-20',
|
|
agent: 'Ana R.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['High-value', 'Referral source', 'Multi-line'],
|
|
paymentStatus: 'Overdue',
|
|
policies: [
|
|
{ id: 'POL-2022-2200', line: 'Auto', carrier: 'Qualitas', product: '2022 BMW X5 — SJO-2200', premium: 3200, status: 'Active', renewal: '2025-05-01', icon: 'i-heroicons-truck', details: 'Comprehensive • $1,000 deductible', referralChannel: 'Referral — client' },
|
|
{ id: 'POL-2022-2201', line: 'Auto', carrier: 'Qualitas', product: '2020 Mercedes GLC — SJO-7788', premium: 2800, status: 'Active', renewal: '2025-05-01', icon: 'i-heroicons-truck', details: 'Comprehensive • $1,000 deductible • Spouse vehicle', referralChannel: 'Referral — client' },
|
|
{ id: 'POL-2020-0055', line: 'Home', carrier: 'ASSA', product: 'Homeowner — Santa Ana residence', premium: 2100, status: 'Active', renewal: '2025-07-15', icon: 'i-heroicons-home-modern', details: 'Dwelling $420K • Contents $95K • Flood + Earthquake', referralChannel: 'Cross-sell' },
|
|
{ id: 'POL-2021-0750', line: 'Life', carrier: 'Pan-American Life', product: 'Whole life — $500K', premium: 4800, status: 'Active', renewal: '2025-11-20', icon: 'i-heroicons-shield-check', details: 'Beneficiaries: Patricia Calderón (60%), Children (40%)', referralChannel: 'Google Ads' },
|
|
{ id: 'POL-2023-6600', line: 'Life', carrier: 'Blue Cross', product: 'Family health — Platinum', premium: 8400, status: 'Active', renewal: '2025-10-01', icon: 'i-heroicons-heart', details: '4 members • Dental + Vision • Intl coverage', referralChannel: 'Google Ads' },
|
|
{ id: 'POL-2023-6601', line: 'General Risk', carrier: 'INS', product: 'Personal umbrella — $2M', premium: 680, status: 'Active', renewal: '2025-12-01', icon: 'i-heroicons-shield-exclamation', details: 'Excess liability over auto + home', referralChannel: 'Cross-sell' },
|
|
],
|
|
claims: [
|
|
{ id: 'CL-3020', policy: 'POL-2022-2200', type: 'Collision — rear-end', date: '2025-03-08', amount: 9500, status: 'In progress' },
|
|
{ id: 'CL-2650', policy: 'POL-2023-6600', type: 'Surgery reimbursement', date: '2024-10-15', amount: 12400, status: 'Resolved' },
|
|
{ id: 'CL-2102', policy: 'POL-2020-0055', type: 'Storm damage — roof', date: '2024-06-22', amount: 8200, status: 'Resolved' },
|
|
],
|
|
payments: [
|
|
{ date: '2025-04-01', amount: 1832, policy: 'Multiple', method: 'Auto-debit', status: 'Failed' },
|
|
{ date: '2025-03-01', amount: 1832, policy: 'Multiple', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-02-01', amount: 1832, policy: 'Multiple', method: 'Auto-debit', status: 'Paid' },
|
|
{ date: '2025-01-01', amount: 1832, policy: 'Multiple', method: 'Auto-debit', status: 'Paid' },
|
|
],
|
|
activity: [
|
|
{ date: 'Today', text: 'ALERT: April payment failed — auto-debit declined', type: 'payment' },
|
|
{ date: 'Yesterday', text: 'Collision claim CL-3020 — repair estimate received ($9,500)', type: 'claim' },
|
|
{ date: 'Mar 20', text: 'Auto policies up for renewal May 1 — quote comparison started', type: 'renewal' },
|
|
{ date: 'Mar 08', text: 'Collision claim filed — CL-3020 (BMW rear-end)', type: 'claim' },
|
|
{ date: 'Feb 15', text: 'Annual portfolio review — recommended umbrella increase', type: 'note' },
|
|
{ date: 'Jan 20', text: 'Health claim CL-2650 resolved — $12,400 reimbursed', type: 'claim' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 5 · Sofía Campos Rojas */
|
|
/* ────────────────────────────────────────────── */
|
|
const sofia: MockCustomer = {
|
|
id: 'cust-005',
|
|
name: 'Sofía Campos Rojas',
|
|
initials: 'SC',
|
|
type: 'Individual',
|
|
documentId: '4-0220-0561',
|
|
email: 'sofia.campos@icloud.com',
|
|
phone: '+506 7233-0098',
|
|
birthDate: '1995-12-03',
|
|
gender: 'Female',
|
|
address: 'Guanacaste, Liberia, Centro',
|
|
since: '2024-01-15',
|
|
agent: 'Marco V.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Young professional'],
|
|
paymentStatus: 'Grace period',
|
|
policies: [
|
|
{ id: 'POL-2024-9901', line: 'Auto', carrier: 'INS', product: '2024 Mazda CX-30 — GUA-0098', premium: 1380, status: 'Active', renewal: '2026-01-15', icon: 'i-heroicons-truck', details: 'Comprehensive • $500 deductible', referralChannel: 'Instagram campaign' },
|
|
{ id: 'POL-2024-9902', line: 'Life', carrier: 'Mapfre', product: 'Term life — 10yr, $100K', premium: 360, status: 'Active', renewal: '2026-01-15', icon: 'i-heroicons-shield-check', details: 'Beneficiary: Elena Rojas (mother)', referralChannel: 'Cross-sell' },
|
|
],
|
|
claims: [
|
|
{ id: 'CL-3101', policy: 'POL-2024-9901', type: 'Fender bender', date: '2025-03-20', amount: 1800, status: 'Under review' },
|
|
],
|
|
payments: [
|
|
{ date: '2025-04-01', amount: 145, policy: 'POL-2024-9901', method: 'Transfer', status: 'Pending' },
|
|
{ date: '2025-03-01', amount: 145, policy: 'POL-2024-9901', method: 'Transfer', status: 'Paid' },
|
|
{ date: '2025-03-01', amount: 30, policy: 'POL-2024-9902', method: 'Transfer', status: 'Paid' },
|
|
{ date: '2025-02-01', amount: 145, policy: 'POL-2024-9901', method: 'Transfer', status: 'Paid' },
|
|
],
|
|
activity: [
|
|
{ date: 'Today', text: 'Grace period — April auto premium not yet received', type: 'payment' },
|
|
{ date: 'Mar 22', text: 'Fender bender claim CL-3101 filed', type: 'claim' },
|
|
{ date: 'Mar 01', text: 'Monthly payment received ($175)', type: 'payment' },
|
|
{ date: 'Jan 15', text: 'Policies renewed — Auto + Life', type: 'renewal' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 6 · Quick Lead — Diego Herrera */
|
|
/* ────────────────────────────────────────────── */
|
|
const diego: MockCustomer = {
|
|
id: 'cust-006',
|
|
name: 'Diego Herrera',
|
|
initials: 'DH',
|
|
type: 'Individual',
|
|
documentId: '—',
|
|
email: 'diego.h@gmail.com',
|
|
phone: '+506 6100-4422',
|
|
birthDate: '',
|
|
gender: '',
|
|
address: '',
|
|
since: '2026-03-28',
|
|
agent: 'Marco V.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Quick lead', 'Referral'],
|
|
paymentStatus: 'N/A',
|
|
policies: [],
|
|
claims: [],
|
|
payments: [],
|
|
activity: [
|
|
{ date: 'Mar 28', text: 'Quick lead captured — referred by Roberto Jiménez', type: 'onboarding' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 7 · Quick Lead — Valeria Núñez */
|
|
/* ────────────────────────────────────────────── */
|
|
const valeria: MockCustomer = {
|
|
id: 'cust-007',
|
|
name: 'Valeria Núñez',
|
|
initials: 'VN',
|
|
type: 'Individual',
|
|
documentId: '—',
|
|
email: '',
|
|
phone: '+506 8899-1100',
|
|
birthDate: '',
|
|
gender: '',
|
|
address: '',
|
|
since: '2026-04-01',
|
|
agent: 'Ana R.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Quick lead', 'Walk-in'],
|
|
paymentStatus: 'N/A',
|
|
policies: [],
|
|
claims: [],
|
|
payments: [],
|
|
activity: [
|
|
{ date: 'Apr 01', text: 'Walk-in lead — interested in auto insurance', type: 'onboarding' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 8 · Lead — Andrés Mora Villalobos */
|
|
/* ────────────────────────────────────────────── */
|
|
const andres: MockCustomer = {
|
|
id: 'cust-008',
|
|
name: 'Andrés Mora Villalobos',
|
|
initials: 'AM',
|
|
type: 'Individual',
|
|
documentId: '1-1450-0221',
|
|
email: 'andres.mora@empresa.cr',
|
|
phone: '+506 7744-5566',
|
|
birthDate: '1990-05-18',
|
|
gender: 'Male',
|
|
address: 'San José, Moravia, San Vicente',
|
|
since: '2026-03-15',
|
|
agent: 'Ana R.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Lead', 'Corporate referral'],
|
|
paymentStatus: 'N/A',
|
|
policies: [],
|
|
claims: [],
|
|
payments: [],
|
|
activity: [
|
|
{ date: 'Mar 15', text: 'Lead created — needs auto + health quotes', type: 'onboarding' },
|
|
{ date: 'Mar 20', text: 'Discovery call completed — family of 3', type: 'note' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 9 · Lead — Corporación Tecnológica del Valle */
|
|
/* ────────────────────────────────────────────── */
|
|
const corpTech: MockCustomer = {
|
|
id: 'cust-009',
|
|
name: 'Corporación Tecnológica del Valle',
|
|
initials: 'CT',
|
|
type: 'Corporate',
|
|
documentId: '3-101-789456',
|
|
email: 'rrhh@corptech.cr',
|
|
phone: '+506 2234-8800',
|
|
birthDate: '',
|
|
gender: '',
|
|
address: 'Heredia, Heredia, Zona Franca',
|
|
since: '2026-02-10',
|
|
agent: 'Marco V.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Lead', 'Corporate', 'Group health prospect'],
|
|
paymentStatus: 'N/A',
|
|
policies: [],
|
|
claims: [],
|
|
payments: [],
|
|
activity: [
|
|
{ date: 'Feb 10', text: 'Corporate lead — 45 employees, group health RFP', type: 'onboarding' },
|
|
{ date: 'Mar 05', text: 'Census received — quoting in progress', type: 'quote' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* 10 · Cancelled — Fernando Arias Blanco */
|
|
/* ────────────────────────────────────────────── */
|
|
const fernando: MockCustomer = {
|
|
id: 'cust-010',
|
|
name: 'Fernando Arias Blanco',
|
|
initials: 'FA',
|
|
type: 'Individual',
|
|
documentId: '1-0892-0344',
|
|
email: 'fernando.arias@hotmail.com',
|
|
phone: '+506 8322-0017',
|
|
birthDate: '1982-09-14',
|
|
gender: 'Male',
|
|
address: 'Alajuela, San Carlos, Ciudad Quesada',
|
|
since: '2020-04-01',
|
|
agent: 'Ana R.',
|
|
preferredLang: 'Spanish',
|
|
tags: ['Cancelled', 'Win-back opportunity'],
|
|
paymentStatus: 'N/A',
|
|
policies: [
|
|
{ id: 'POL-2020-1100', line: 'Auto', carrier: 'INS', product: '2018 Toyota Hilux — ALJ-4400', premium: 1200, status: 'Cancelled', renewal: '2024-04-01', icon: 'i-heroicons-truck', details: 'Cancelled — non-payment', referralChannel: 'Direct walk-in' },
|
|
{ id: 'POL-2021-2200', line: 'Home', carrier: 'ASSA', product: 'Homeowner — Ciudad Quesada', premium: 650, status: 'Lapsed', renewal: '2024-06-15', icon: 'i-heroicons-home-modern', details: 'Lapsed — did not renew', referralChannel: 'Direct walk-in' },
|
|
],
|
|
claims: [
|
|
{ id: 'CL-1200', policy: 'POL-2020-1100', type: 'Theft attempt', date: '2023-08-10', amount: 3200, status: 'Resolved' },
|
|
],
|
|
payments: [
|
|
{ date: '2024-01-01', amount: 154, policy: 'POL-2020-1100', method: 'Transfer', status: 'Paid' },
|
|
{ date: '2024-02-01', amount: 154, policy: 'POL-2020-1100', method: 'Transfer', status: 'Overdue' },
|
|
{ date: '2024-03-01', amount: 154, policy: 'POL-2020-1100', method: 'Transfer', status: 'Overdue' },
|
|
],
|
|
activity: [
|
|
{ date: 'Apr 01', text: 'Auto policy cancelled — 3 months unpaid', type: 'policy' },
|
|
{ date: 'Jun 15', text: 'Home policy lapsed — did not renew', type: 'policy' },
|
|
{ date: 'Aug 20', text: 'Win-back call attempted — no answer', type: 'note' },
|
|
],
|
|
}
|
|
|
|
/* ────────────────────────────────────────────── */
|
|
/* Exports */
|
|
/* ────────────────────────────────────────────── */
|
|
|
|
export const MOCK_CUSTOMERS: MockCustomer[] = [maria, roberto, carolina, luis, sofia, diego, valeria, andres, corpTech, fernando]
|
|
|
|
export const MOCK_CUSTOMERS_BY_ID: Record<string, MockCustomer> = Object.fromEntries(
|
|
MOCK_CUSTOMERS.map((c) => [c.id, c])
|
|
)
|
|
|
|
/** Helper to format currency */
|
|
export function fmtMoney(n: number): string {
|
|
return `$${n.toLocaleString()}`
|
|
}
|