Files
cbsnexora/src/app/cfcfrms/mock/cfcfrms-mock-data.ts
T
AdityaandClaude Opus 4.6 b3a4cce0cf feat: add CFCFRMS module, bank menus, mock backend, and dashboard redesign
- CFCFRMS cyber fraud complaint management with dashboard, complaints,
  escalation, report suspect/mule/fraud txn, FMR submission, CFR lookup
- Mock HTTP interceptor with 20 dummy complaints and all endpoints
- Simulator service for I4C/MHA integration testing
- 3-row menu bar with 22 items (7+8+8 layout)
- Mega menus for General Ledger, Sub Ledger, Deposits, Share, Others,
  HRM, RBI with search and grouped columns
- Dropdowns for Cashier, Clearing, NPA, CKYC, Advances, Letter Mgmt,
  Insurance, Digital
- Dashboard redesign with regulatory, financial health, deposits,
  risk/NPA sections using static banking data
- All translations added to en-US.json
- FontAwesome icons registered for all new menu items

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 18:05:43 +05:30

850 lines
29 KiB
TypeScript

/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
import { Complaint, ComplaintStatus, DashboardStats, TimelineEvent } from '../models/cfcfrms.models';
// ─── Helper: generate dates relative to now ───
function daysAgo(n: number): string {
const d = new Date();
d.setDate(d.getDate() - n);
return d.toISOString();
}
function hoursAgo(n: number): string {
const d = new Date();
d.setHours(d.getHours() - n);
return d.toISOString();
}
// ─── 20 Realistic Dummy Complaints ───
export const MOCK_COMPLAINTS: Complaint[] = [
{
ticketId: 'CFCFRMS-2024-00001',
complainantName: 'Rajesh Kumar Sharma',
complainantMobile: '9876543210',
complainantEmail: 'rajesh.sharma@gmail.com',
complainantAddress: '42, MG Road, Sector 18, Noida, UP 201301',
fraudAmount: 250000,
fraudType: 'UPI_FRAUD',
fraudDescription:
'Received fake KYC update link via SMS. After clicking, ₹2.5L was debited via multiple UPI transactions within 10 minutes.',
suspectAccountNumber: '50100268347291',
suspectAccountName: 'Vikram Enterprises',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240115-00981',
status: 'RECEIVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: '',
createdAt: daysAgo(0),
updatedAt: daysAgo(0)
},
{
ticketId: 'CFCFRMS-2024-00002',
complainantName: 'Priya Nair',
complainantMobile: '8765432109',
complainantEmail: 'priya.nair@yahoo.com',
complainantAddress: '15, Anna Salai, T. Nagar, Chennai, TN 600017',
fraudAmount: 487500,
fraudType: 'OLX_FRAUD',
fraudDescription:
'Victim was selling a sofa on OLX. Scammer sent a QR code claiming it was for payment. Scanning the QR debited ₹4,87,500.',
suspectAccountNumber: '50100399281746',
suspectAccountName: 'Deepak Trading Co',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240115-01102',
status: 'UNDER_REVIEW',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 312000,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: 'Officer Meena K.',
createdAt: daysAgo(1),
updatedAt: hoursAgo(6)
},
{
ticketId: 'CFCFRMS-2024-00003',
complainantName: 'Amit Patel',
complainantMobile: '7654321098',
complainantEmail: 'amit.patel@outlook.com',
complainantAddress: '78, SG Highway, Bodakdev, Ahmedabad, GJ 380054',
fraudAmount: 150000,
fraudType: 'LOAN_APP_FRAUD',
fraudDescription:
'Downloaded fake loan app from link shared on WhatsApp. App collected bank details and debited ₹1.5L in two transactions.',
suspectAccountNumber: '50100412738956',
suspectAccountName: 'QuickCash Solutions',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'MHA_PORTAL',
acknowledgementNumber: 'ACK-MHA-20240114-00437',
status: 'LIEN_MARKED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 89000,
fundsHeld: 150000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Lien placed on suspect account. Balance sufficient to cover fraud amount.',
assignedOfficer: 'Officer Suresh R.',
createdAt: daysAgo(3),
updatedAt: daysAgo(1)
},
{
ticketId: 'CFCFRMS-2024-00004',
complainantName: 'Sunita Devi',
complainantMobile: '6543210987',
complainantEmail: '',
complainantAddress: 'Village Rampur, Block Sadar, Varanasi, UP 221002',
fraudAmount: 75000,
fraudType: 'CUSTOMER_CARE_FRAUD',
fraudDescription:
'Called fake customer care number from Google. Scammer installed AnyDesk on victim phone and transferred ₹75,000.',
suspectAccountNumber: '50100528463190',
suspectAccountName: 'Rahul Verma',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240113-00215',
status: 'DEBIT_FROZEN',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 42000,
fundsHeld: 75000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Debit freeze applied. Full fraud amount held. Account holder notified via registered mobile.',
assignedOfficer: 'Officer Suresh R.',
createdAt: daysAgo(5),
updatedAt: daysAgo(2)
},
{
ticketId: 'CFCFRMS-2024-00005',
complainantName: 'Mohammed Irfan',
complainantMobile: '9988776655',
complainantEmail: 'irfan.m@gmail.com',
complainantAddress: '23, Charminar Road, Hyderabad, TS 500002',
fraudAmount: 890000,
fraudType: 'INVESTMENT_FRAUD',
fraudDescription:
'Lured into fake stock trading app via Telegram group. Invested ₹8.9L over two weeks. Unable to withdraw funds.',
suspectAccountNumber: '50100637291845',
suspectAccountName: 'Global Trade Hub',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240112-00876',
status: 'FUNDS_MOVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 12500,
fundsHeld: 0,
nextHopAccountNumber: '91820034567812',
nextHopBankIfsc: 'SBIN0001234',
actionNote: 'Only ₹12,500 available. Majority funds moved to SBI account. Escalating to SBI.',
assignedOfficer: 'Officer Meena K.',
createdAt: daysAgo(8),
updatedAt: daysAgo(4)
},
{
ticketId: 'CFCFRMS-2024-00006',
complainantName: 'Kavitha Reddy',
complainantMobile: '8877665544',
complainantEmail: 'kavitha.r@hotmail.com',
complainantAddress: '56, Indiranagar, Bangalore, KA 560038',
fraudAmount: 320000,
fraudType: 'PART_TIME_JOB_FRAUD',
fraudDescription:
'Scammed via Telegram part-time job offer. Made initial ₹5,000 "investment" then lured into paying ₹3.2L as "tax" and "processing fee".',
suspectAccountNumber: '50100745829361',
suspectAccountName: 'EarnMore Digital Services',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240110-00543',
status: 'RESOLVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Full amount recovered and refunded to complainant via NEFT. Case closed.',
assignedOfficer: 'Officer Anita S.',
createdAt: daysAgo(15),
updatedAt: daysAgo(5)
},
{
ticketId: 'CFCFRMS-2024-00007',
complainantName: 'Arvind Singh',
complainantMobile: '7766554433',
complainantEmail: 'arvind.singh@gmail.com',
complainantAddress: '12, Civil Lines, Jaipur, RJ 302006',
fraudAmount: 45000,
fraudType: 'UPI_FRAUD',
fraudDescription:
'Received call from person posing as bank official. Tricked into sharing OTP. ₹45,000 debited via UPI.',
suspectAccountNumber: '50100854917263',
suspectAccountName: 'Sanjay Meena',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'MHA_PORTAL',
acknowledgementNumber: 'ACK-MHA-20240109-00129',
status: 'REJECTED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Suspect account does not belong to LincPay. IFSC mismatch — ticket redirected to correct bank (PNB).',
assignedOfficer: 'Officer Suresh R.',
createdAt: daysAgo(18),
updatedAt: daysAgo(16)
},
{
ticketId: 'CFCFRMS-2024-00008',
complainantName: 'Lakshmi Iyer',
complainantMobile: '9654321076',
complainantEmail: 'lakshmi.iyer@gmail.com',
complainantAddress: '34, Marine Drive, Kochi, KL 682031',
fraudAmount: 560000,
fraudType: 'MATRIMONY_FRAUD',
fraudDescription:
'Met scammer on matrimony site. Paid ₹5.6L over 2 months for "visa processing" and "medical emergency".',
suspectAccountNumber: '50100963845712',
suspectAccountName: 'Premium Match Services',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240108-00321',
status: 'LIEN_MARKED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 234000,
fundsHeld: 560000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Lien marked. Sufficient balance to cover full fraud amount.',
assignedOfficer: 'Officer Anita S.',
createdAt: daysAgo(10),
updatedAt: daysAgo(7)
},
{
ticketId: 'CFCFRMS-2024-00009',
complainantName: 'Rajan Tiwari',
complainantMobile: '8543219876',
complainantEmail: 'rajan.t@yahoo.com',
complainantAddress: '67, Boring Road, Patna, BR 800001',
fraudAmount: 198000,
fraudType: 'ELECTRICITY_BILL_FRAUD',
fraudDescription:
'Received SMS about pending electricity bill with threat of disconnection. Clicked link and ₹1.98L was stolen via screen-sharing app.',
suspectAccountNumber: '50100172839465',
suspectAccountName: 'Power Solutions India',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240107-00654',
status: 'UNDER_REVIEW',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 56000,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: 'Officer Meena K.',
createdAt: daysAgo(2),
updatedAt: daysAgo(1)
},
{
ticketId: 'CFCFRMS-2024-00010',
complainantName: 'Deepa Nayak',
complainantMobile: '7432108765',
complainantEmail: 'deepa.n@gmail.com',
complainantAddress: '89, Panjim, Goa 403001',
fraudAmount: 125000,
fraudType: 'COURIER_FRAUD',
fraudDescription:
'Fake FedEx call claiming parcel with contraband. Transferred to fake "cyber cell officer" who demanded ₹1.25L as "security deposit".',
suspectAccountNumber: '50100281934567',
suspectAccountName: 'SecurePay Hub',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'MHA_PORTAL',
acknowledgementNumber: 'ACK-MHA-20240106-00087',
status: 'RECEIVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: '',
createdAt: daysAgo(1),
updatedAt: daysAgo(1)
},
{
ticketId: 'CFCFRMS-2024-00011',
complainantName: 'Suresh Babu',
complainantMobile: '9321654870',
complainantEmail: 'suresh.b@gmail.com',
complainantAddress: '22, Gandhi Nagar, Vijayawada, AP 520003',
fraudAmount: 1500000,
fraudType: 'INVESTMENT_FRAUD',
fraudDescription:
'Joined fake crypto trading group on Telegram. Deposited ₹15L over 3 months. Website is now down, funds lost.',
suspectAccountNumber: '50100391726845',
suspectAccountName: 'CryptoVault Exchange',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240105-01234',
status: 'DEBIT_FROZEN',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 340000,
fundsHeld: 340000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Only ₹3.4L available in account. Rest already moved. Debit frozen on available balance.',
assignedOfficer: 'Officer Suresh R.',
createdAt: daysAgo(6),
updatedAt: daysAgo(3)
},
{
ticketId: 'CFCFRMS-2024-00012',
complainantName: 'Ananya Gupta',
complainantMobile: '8210543976',
complainantEmail: 'ananya.g@outlook.com',
complainantAddress: '45, Connaught Place, New Delhi 110001',
fraudAmount: 95000,
fraudType: 'OLX_FRAUD',
fraudDescription:
'Tried to buy an iPhone on OLX. Seller sent fake payment link. ₹95,000 debited upon entering card details.',
suspectAccountNumber: '50100402819375',
suspectAccountName: 'FastDeal Online',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240104-00789',
status: 'RESOLVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Funds recovered and refunded to complainant.',
assignedOfficer: 'Officer Anita S.',
createdAt: daysAgo(20),
updatedAt: daysAgo(10)
},
{
ticketId: 'CFCFRMS-2024-00013',
complainantName: 'Vikas Joshi',
complainantMobile: '9109876543',
complainantEmail: 'vikas.j@gmail.com',
complainantAddress: '78, FC Road, Pune, MH 411004',
fraudAmount: 67000,
fraudType: 'UPI_FRAUD',
fraudDescription:
'Received collect request on PhonePe with message "Refund of ₹67,000". Approved the collect request and lost funds.',
suspectAccountNumber: '50100513928476',
suspectAccountName: 'Mohan Kumar',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240103-00456',
status: 'RECEIVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: '',
createdAt: hoursAgo(4),
updatedAt: hoursAgo(4)
},
{
ticketId: 'CFCFRMS-2024-00014',
complainantName: 'Geeta Menon',
complainantMobile: '8098765432',
complainantEmail: 'geeta.menon@gmail.com',
complainantAddress: '90, MG Road, Thrissur, KL 680001',
fraudAmount: 430000,
fraudType: 'LOAN_APP_FRAUD',
fraudDescription:
'Downloaded "InstaCash" loan app. After providing bank details, ₹4.3L was transferred out in 5 transactions within 30 minutes.',
suspectAccountNumber: '50100624738291',
suspectAccountName: 'InstaCash Finance',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240102-00567',
status: 'LIEN_MARKED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 178000,
fundsHeld: 430000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Full fraud amount covered by lien. Investigation ongoing.',
assignedOfficer: 'Officer Meena K.',
createdAt: daysAgo(7),
updatedAt: daysAgo(4)
},
{
ticketId: 'CFCFRMS-2024-00015',
complainantName: 'Pankaj Mishra',
complainantMobile: '7987654321',
complainantEmail: 'pankaj.m@gmail.com',
complainantAddress: '11, Hazratganj, Lucknow, UP 226001',
fraudAmount: 210000,
fraudType: 'SEXTORTION',
fraudDescription:
'Victim blackmailed after video call on dating app. Paid ₹2.1L across 4 transactions to prevent video leak.',
suspectAccountNumber: '50100735829461',
suspectAccountName: 'Nikhil Yadav',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20240101-00890',
status: 'FUNDS_MOVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 5000,
fundsHeld: 0,
nextHopAccountNumber: '40120098765432',
nextHopBankIfsc: 'HDFC0001234',
actionNote: 'Funds already moved to HDFC account. Escalated.',
assignedOfficer: 'Officer Suresh R.',
createdAt: daysAgo(12),
updatedAt: daysAgo(8)
},
{
ticketId: 'CFCFRMS-2024-00016',
complainantName: 'Rekha Pandey',
complainantMobile: '6876543210',
complainantEmail: 'rekha.p@yahoo.com',
complainantAddress: '33, Lalbagh Road, Mangalore, KA 575001',
fraudAmount: 38000,
fraudType: 'CUSTOMER_CARE_FRAUD',
fraudDescription:
'Googled customer care for Paytm. Called fake number. Agent installed TeamViewer and debited ₹38,000.',
suspectAccountNumber: '50100846729153',
suspectAccountName: 'Digital Pay Services',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'MHA_PORTAL',
acknowledgementNumber: 'ACK-MHA-20240101-00044',
status: 'UNDER_REVIEW',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 18500,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: 'Officer Anita S.',
createdAt: daysAgo(2),
updatedAt: hoursAgo(12)
},
{
ticketId: 'CFCFRMS-2024-00017',
complainantName: 'Dinesh Choudhary',
complainantMobile: '9765432180',
complainantEmail: 'dinesh.c@gmail.com',
complainantAddress: '55, Ashram Road, Ahmedabad, GJ 380009',
fraudAmount: 780000,
fraudType: 'INVESTMENT_FRAUD',
fraudDescription:
'Invested in fake forex trading platform "ForexPro". Platform blocked withdrawal after total deposit of ₹7.8L.',
suspectAccountNumber: '50100957382614',
suspectAccountName: 'ForexPro Trading LLP',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20241230-01567',
status: 'DEBIT_FROZEN',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 520000,
fundsHeld: 520000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Partial amount frozen. ₹2.6L already transferred out.',
assignedOfficer: 'Officer Meena K.',
createdAt: daysAgo(9),
updatedAt: daysAgo(5)
},
{
ticketId: 'CFCFRMS-2024-00018',
complainantName: 'Fatima Begum',
complainantMobile: '8654321097',
complainantEmail: '',
complainantAddress: '12, Chowk Bazaar, Bhopal, MP 462001',
fraudAmount: 55000,
fraudType: 'ELECTRICITY_BILL_FRAUD',
fraudDescription:
'Received WhatsApp message about electricity bill overdue. Called the number provided. Agent made victim install AnyDesk. ₹55,000 debited.',
suspectAccountNumber: '50100168293475',
suspectAccountName: 'Ravi Shankar',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20241229-00234',
status: 'RESOLVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Funds recovered from suspect account and refunded.',
assignedOfficer: 'Officer Suresh R.',
createdAt: daysAgo(25),
updatedAt: daysAgo(15)
},
{
ticketId: 'CFCFRMS-2024-00019',
complainantName: 'Manoj Kumar',
complainantMobile: '9543210876',
complainantEmail: 'manoj.k@gmail.com',
complainantAddress: '67, Park Street, Kolkata, WB 700016',
fraudAmount: 175000,
fraudType: 'PART_TIME_JOB_FRAUD',
fraudDescription:
'Joined "Amazon Review" job scam on Telegram. Initially earned small amounts, then lost ₹1.75L as "upgrade fees".',
suspectAccountNumber: '50100279384651',
suspectAccountName: 'SmartWork Hub',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20241228-00901',
status: 'LIEN_MARKED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 98000,
fundsHeld: 175000,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: 'Lien marked successfully. Full amount available.',
assignedOfficer: 'Officer Anita S.',
createdAt: daysAgo(4),
updatedAt: daysAgo(2)
},
{
ticketId: 'CFCFRMS-2024-00020',
complainantName: 'Shreya Das',
complainantMobile: '8432109765',
complainantEmail: 'shreya.d@gmail.com',
complainantAddress: '101, Bandra West, Mumbai, MH 400050',
fraudAmount: 2100000,
fraudType: 'INVESTMENT_FRAUD',
fraudDescription:
'Invested ₹21L in fake IPO allotment scheme promoted via Instagram ads. Payment split across 3 accounts.',
suspectAccountNumber: '50100388274916',
suspectAccountName: 'IPO Goldmine Pvt Ltd',
suspectBankIfsc: 'LINC0000001',
suspectBankName: 'LincPay Digital Bank',
sourcePortal: 'I4C_CFCFRMS',
acknowledgementNumber: 'ACK-I4C-20241227-01789',
status: 'RECEIVED',
currentBankIfsc: 'LINC0000001',
currentBankName: 'LincPay Digital Bank',
availableBalance: 0,
fundsHeld: 0,
nextHopAccountNumber: '',
nextHopBankIfsc: '',
actionNote: '',
assignedOfficer: '',
createdAt: hoursAgo(2),
updatedAt: hoursAgo(2)
}
];
// ─── Timeline Events keyed by ticketId ───
export const MOCK_TIMELINES: { [ticketId: string]: TimelineEvent[] } = {
'CFCFRMS-2024-00001': [
{
id: 1,
ticketId: 'CFCFRMS-2024-00001',
eventType: 'COMPLAINT_RECEIVED',
eventDescription: 'Complaint received from I4C CFCFRMS portal.',
actor: 'System',
actorRole: 'SYSTEM',
timestamp: daysAgo(0),
metadata: {}
}
],
'CFCFRMS-2024-00002': [
{
id: 1,
ticketId: 'CFCFRMS-2024-00002',
eventType: 'COMPLAINT_RECEIVED',
eventDescription: 'Complaint received from I4C CFCFRMS portal.',
actor: 'System',
actorRole: 'SYSTEM',
timestamp: daysAgo(1),
metadata: {}
},
{
id: 2,
ticketId: 'CFCFRMS-2024-00002',
eventType: 'ASSIGNED',
eventDescription: 'Assigned to Officer Meena K. for review.',
actor: 'Admin',
actorRole: 'ADMIN',
timestamp: hoursAgo(18),
metadata: {}
},
{
id: 3,
ticketId: 'CFCFRMS-2024-00002',
eventType: 'UNDER_REVIEW',
eventDescription: 'Investigation initiated. Checking suspect account transaction history.',
actor: 'Officer Meena K.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: hoursAgo(6),
metadata: {}
}
],
'CFCFRMS-2024-00003': [
{
id: 1,
ticketId: 'CFCFRMS-2024-00003',
eventType: 'COMPLAINT_RECEIVED',
eventDescription: 'Complaint received from MHA Portal.',
actor: 'System',
actorRole: 'SYSTEM',
timestamp: daysAgo(3),
metadata: {}
},
{
id: 2,
ticketId: 'CFCFRMS-2024-00003',
eventType: 'ASSIGNED',
eventDescription: 'Assigned to Officer Suresh R.',
actor: 'Admin',
actorRole: 'ADMIN',
timestamp: daysAgo(3),
metadata: {}
},
{
id: 3,
ticketId: 'CFCFRMS-2024-00003',
eventType: 'UNDER_REVIEW',
eventDescription: 'Account details verified. ₹1.5L fraud amount confirmed.',
actor: 'Officer Suresh R.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(2),
metadata: {}
},
{
id: 4,
ticketId: 'CFCFRMS-2024-00003',
eventType: 'LIEN_MARKED',
eventDescription: 'Lien placed on suspect account. Balance ₹2,39,000. Full fraud amount secured.',
actor: 'Officer Suresh R.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(1),
metadata: { availableBalance: 89000, fundsHeld: 150000 }
}
],
'CFCFRMS-2024-00004': [
{
id: 1,
ticketId: 'CFCFRMS-2024-00004',
eventType: 'COMPLAINT_RECEIVED',
eventDescription: 'Complaint received from I4C CFCFRMS portal.',
actor: 'System',
actorRole: 'SYSTEM',
timestamp: daysAgo(5),
metadata: {}
},
{
id: 2,
ticketId: 'CFCFRMS-2024-00004',
eventType: 'ASSIGNED',
eventDescription: 'Assigned to Officer Suresh R.',
actor: 'Admin',
actorRole: 'ADMIN',
timestamp: daysAgo(5),
metadata: {}
},
{
id: 3,
ticketId: 'CFCFRMS-2024-00004',
eventType: 'LIEN_MARKED',
eventDescription: 'Lien placed on suspect account.',
actor: 'Officer Suresh R.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(3),
metadata: {}
},
{
id: 4,
ticketId: 'CFCFRMS-2024-00004',
eventType: 'DEBIT_FROZEN',
eventDescription: 'Debit freeze applied. Full ₹75,000 held. Account holder notified via registered mobile.',
actor: 'Officer Suresh R.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(2),
metadata: { availableBalance: 42000, fundsHeld: 75000 }
}
],
'CFCFRMS-2024-00005': [
{
id: 1,
ticketId: 'CFCFRMS-2024-00005',
eventType: 'COMPLAINT_RECEIVED',
eventDescription: 'Complaint received from I4C CFCFRMS portal.',
actor: 'System',
actorRole: 'SYSTEM',
timestamp: daysAgo(8),
metadata: {}
},
{
id: 2,
ticketId: 'CFCFRMS-2024-00005',
eventType: 'ASSIGNED',
eventDescription: 'Assigned to Officer Meena K.',
actor: 'Admin',
actorRole: 'ADMIN',
timestamp: daysAgo(8),
metadata: {}
},
{
id: 3,
ticketId: 'CFCFRMS-2024-00005',
eventType: 'LIEN_MARKED',
eventDescription: 'Only ₹12,500 available in account.',
actor: 'Officer Meena K.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(6),
metadata: {}
},
{
id: 4,
ticketId: 'CFCFRMS-2024-00005',
eventType: 'DEBIT_FROZEN',
eventDescription: 'Account debit frozen.',
actor: 'Officer Meena K.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(5),
metadata: {}
},
{
id: 5,
ticketId: 'CFCFRMS-2024-00005',
eventType: 'FUNDS_MOVED',
eventDescription: 'Majority of funds already moved to SBI account 91820034567812. Escalation initiated.',
actor: 'Officer Meena K.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(4),
metadata: { nextHopAccountNumber: '91820034567812', nextHopBankIfsc: 'SBIN0001234' }
}
],
'CFCFRMS-2024-00006': [
{
id: 1,
ticketId: 'CFCFRMS-2024-00006',
eventType: 'COMPLAINT_RECEIVED',
eventDescription: 'Complaint received from I4C CFCFRMS portal.',
actor: 'System',
actorRole: 'SYSTEM',
timestamp: daysAgo(15),
metadata: {}
},
{
id: 2,
ticketId: 'CFCFRMS-2024-00006',
eventType: 'ASSIGNED',
eventDescription: 'Assigned to Officer Anita S.',
actor: 'Admin',
actorRole: 'ADMIN',
timestamp: daysAgo(15),
metadata: {}
},
{
id: 3,
ticketId: 'CFCFRMS-2024-00006',
eventType: 'LIEN_MARKED',
eventDescription: 'Full amount liened.',
actor: 'Officer Anita S.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(13),
metadata: {}
},
{
id: 4,
ticketId: 'CFCFRMS-2024-00006',
eventType: 'DEBIT_FROZEN',
eventDescription: 'Debit frozen on suspect account.',
actor: 'Officer Anita S.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(10),
metadata: {}
},
{
id: 5,
ticketId: 'CFCFRMS-2024-00006',
eventType: 'RESOLVED',
eventDescription: 'Full amount ₹3,20,000 recovered and refunded to complainant via NEFT. Case closed.',
actor: 'Officer Anita S.',
actorRole: 'COMPLIANCE_OFFICER',
timestamp: daysAgo(5),
metadata: {}
}
]
};
// ─── Dashboard Stats (computed from mock data) ───
export function computeMockStats(): DashboardStats {
const statusDist: { [key: string]: number } = {};
const amountDist: { [key: string]: number } = {};
let pendingReview = 0;
let lienMarked = 0;
let fundsRecovered = 0;
MOCK_COMPLAINTS.forEach((c) => {
statusDist[c.status] = (statusDist[c.status] || 0) + 1;
amountDist[c.status] = (amountDist[c.status] || 0) + c.fraudAmount;
if (c.status === 'RECEIVED' || c.status === 'UNDER_REVIEW') pendingReview++;
if (c.status === 'LIEN_MARKED') lienMarked++;
if (c.status === 'RESOLVED') fundsRecovered += c.fraudAmount;
});
return {
totalComplaints: MOCK_COMPLAINTS.length,
pendingReview,
lienMarked,
fundsRecovered,
statusDistribution: statusDist as any,
amountByStatus: amountDist as any
};
}