Files
helix-engage/src/mocks/follow-ups.ts
saridsa2 15483c5542 feat: add mock data layer — 50 leads, 5 campaigns, ads, activities, templates, agents
Indian names, ₹ currency, healthcare campaign context for Helix Engage.
Includes factories.ts with nextId/randomFrom/daysAgo/createMockLead helpers,
50 leads across all statuses, 5 campaigns (3 active/1 paused/1 completed),
12 ads on active campaigns, 15 lead activities, 8 follow-ups, 5 WhatsApp
templates, and 3 agents. All cross-references are internally consistent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 14:31:53 +05:30

148 lines
4.8 KiB
TypeScript

import type { FollowUp } from '@/types/entities';
import { daysAgo } from './factories';
// daysFromNow helper for future dates
function daysFromNow(n: number): string {
const d = new Date();
d.setDate(d.getDate() + n);
// Set to business hours (10 AM IST)
d.setHours(10, 0, 0, 0);
return d.toISOString();
}
function today(hour: number = 14): string {
const d = new Date();
d.setHours(hour, 0, 0, 0);
return d.toISOString();
}
export const mockFollowUps: FollowUp[] = [
// 1 OVERDUE
{
id: 'followup-1',
createdAt: daysAgo(3),
followUpType: 'CALLBACK',
followUpStatus: 'OVERDUE',
scheduledAt: daysAgo(1),
completedAt: null,
priority: 'HIGH',
assignedAgent: 'Suresh P.',
patientId: 'lead-qualified-2',
callId: null,
patientName: 'Priya Sharma',
patientPhone: '+919845123456',
description: 'Patient requested callback after reviewing IVF package brochure. Had questions about donor egg options and financing.',
},
// 3 PENDING
{
id: 'followup-2',
createdAt: daysAgo(1),
followUpType: 'CALLBACK',
followUpStatus: 'PENDING',
scheduledAt: today(11),
completedAt: null,
priority: 'URGENT',
assignedAgent: 'Rekha S.',
patientId: 'lead-appt-1',
callId: null,
patientName: 'Ananya Nair',
patientPhone: '+918867234567',
description: 'Confirm appointment for IVF consultation tomorrow at 11 AM. Remind patient to bring previous fertility test reports.',
},
{
id: 'followup-3',
createdAt: daysAgo(2),
followUpType: 'APPOINTMENT_REMINDER',
followUpStatus: 'PENDING',
scheduledAt: today(15),
completedAt: null,
priority: 'HIGH',
assignedAgent: 'Meena K.',
patientId: 'lead-appt-3',
callId: null,
patientName: 'Sunita Reddy',
patientPhone: '+919901345678',
description: 'Send Women\'s Day Checkup appointment reminder via WhatsApp. Appointment is tomorrow at 9 AM.',
},
{
id: 'followup-4',
createdAt: daysAgo(1),
followUpType: 'MARKETING',
followUpStatus: 'PENDING',
scheduledAt: daysFromNow(1),
completedAt: null,
priority: 'NORMAL',
assignedAgent: 'Suresh P.',
patientId: 'lead-contacted-5',
callId: null,
patientName: 'Deepika Iyer',
patientPhone: '+917678456789',
description: 'Follow up on Cervical Screening campaign interest. Patient was busy during first call and asked to be called back next day.',
},
// 2 COMPLETED
{
id: 'followup-5',
createdAt: daysAgo(5),
followUpType: 'CALLBACK',
followUpStatus: 'COMPLETED',
scheduledAt: daysAgo(3),
completedAt: daysAgo(3),
priority: 'HIGH',
assignedAgent: 'Rekha S.',
patientId: 'lead-converted-1',
callId: null,
patientName: 'Lakshmi Patel',
patientPhone: '+919876543210',
description: 'Post-appointment follow-up call. Patient confirmed satisfaction with IVF consultation. Proceeding with treatment plan.',
},
{
id: 'followup-6',
createdAt: daysAgo(8),
followUpType: 'POST_VISIT',
followUpStatus: 'COMPLETED',
scheduledAt: daysAgo(6),
completedAt: daysAgo(6),
priority: 'NORMAL',
assignedAgent: 'Meena K.',
patientId: 'lead-converted-3',
callId: null,
patientName: 'Usha Mehta',
patientPhone: '+917890567890',
description: 'Post-visit satisfaction call for Senior Health Package. Patient very happy with service. Referred two friends.',
},
// 2 CANCELLED
{
id: 'followup-7',
createdAt: daysAgo(4),
followUpType: 'CALLBACK',
followUpStatus: 'CANCELLED',
scheduledAt: daysAgo(2),
completedAt: null,
priority: 'NORMAL',
assignedAgent: 'Suresh P.',
patientId: 'lead-contacted-7',
callId: null,
patientName: 'Ramesh Gupta',
patientPhone: '+918765234567',
description: 'Callback cancelled — patient informed via WhatsApp that they are travelling and will reach out when available.',
},
{
id: 'followup-8',
createdAt: daysAgo(6),
followUpType: 'MARKETING',
followUpStatus: 'CANCELLED',
scheduledAt: daysAgo(3),
completedAt: null,
priority: 'LOW',
assignedAgent: 'Rekha S.',
patientId: 'lead-contacted-9',
callId: null,
patientName: 'Mohan Verma',
patientPhone: '+919123456789',
description: 'Diabetes Awareness Camp follow-up cancelled — patient opted out of marketing communications.',
},
];