mirror of
https://dev.azure.com/globalhealthx/EMR/_git/helix-engage
synced 2026-04-12 02:38:15 +00:00
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>
This commit is contained in:
147
src/mocks/follow-ups.ts
Normal file
147
src/mocks/follow-ups.ts
Normal file
@@ -0,0 +1,147 @@
|
||||
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.',
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user