1146 lines
30 KiB
TypeScript
1146 lines
30 KiB
TypeScript
// Mock data for the dealership onboarding system
|
|
|
|
export type UserRole =
|
|
| 'DD-ZM'
|
|
| 'RBM'
|
|
| 'DD'
|
|
| 'ZBH'
|
|
| 'DD Lead'
|
|
| 'DD Head'
|
|
| 'NBH'
|
|
| 'DD Admin'
|
|
| 'Legal Admin'
|
|
| 'Super Admin'
|
|
| 'DD AM'
|
|
| 'FDD'
|
|
| 'DDL'
|
|
| 'Finance'
|
|
| 'Finance Admin'
|
|
| 'Dealer'
|
|
| 'ASM'
|
|
| 'CCO'
|
|
| 'CEO'
|
|
| 'Prospective Dealer';
|
|
|
|
export type ApplicationStatus =
|
|
| 'Submitted'
|
|
| 'Questionnaire Pending'
|
|
| 'Questionnaire Completed'
|
|
| 'Shortlisted'
|
|
| 'In Review'
|
|
| 'Level 1 Interview Pending'
|
|
| 'Level 1 Approved'
|
|
| 'Level 2 Interview Pending'
|
|
| 'Level 2 Approved'
|
|
| 'Level 2 Recommended'
|
|
| 'Level 3 Interview Pending'
|
|
| 'Level 3 Approved'
|
|
| 'FDD Verification'
|
|
| 'Payment Pending'
|
|
| 'LOI In Progress'
|
|
| 'LOI Approved'
|
|
| 'Security Details In Progress'
|
|
| 'Security Details Approved'
|
|
| 'Security Details'
|
|
| 'LOI Issued In Progress'
|
|
| 'LOI Issued'
|
|
| 'Statutory Work In Progress'
|
|
| 'Statutory Work Completed'
|
|
| 'Architecture Work In Progress'
|
|
| 'Architecture Work Completed'
|
|
| 'Dealer Code Generation In Progress'
|
|
| 'Dealer Code Generation'
|
|
| 'Dealer Code Generated'
|
|
| 'Architecture Team Assigned'
|
|
| 'Architecture Document Upload'
|
|
| 'Architecture Team Completion'
|
|
| 'Statutory GST'
|
|
| 'Statutory PAN'
|
|
| 'Statutory Nodal'
|
|
| 'Statutory Check'
|
|
| 'Statutory Partnership'
|
|
| 'Statutory Firm Reg'
|
|
| 'Statutory Rental'
|
|
| 'Statutory Virtual Code'
|
|
| 'Statutory Domain'
|
|
| 'Statutory MSD'
|
|
| 'Statutory LOI Ack'
|
|
| 'LOA Pending'
|
|
| 'LOA Issued'
|
|
| 'EOR In Progress'
|
|
| 'EOR Complete'
|
|
| 'Inauguration'
|
|
| 'Approved'
|
|
| 'Rejected'
|
|
| 'Disqualified'
|
|
| 'Onboarded';
|
|
|
|
export interface Application {
|
|
id: string;
|
|
registrationNumber: string;
|
|
name: string;
|
|
email: string;
|
|
phone: string;
|
|
age: number;
|
|
education: string;
|
|
residentialAddress: string;
|
|
businessAddress: string;
|
|
preferredLocation: string;
|
|
state: string;
|
|
ownsBike?: boolean;
|
|
ownRoyalEnfield?: string;
|
|
royalEnfieldModel?: string;
|
|
existingDealer?: string;
|
|
companyName?: string;
|
|
source?: string;
|
|
description?: string;
|
|
address?: string;
|
|
pincode?: string;
|
|
locationType?: string;
|
|
constitutionType?: string;
|
|
pastExperience: string;
|
|
status: ApplicationStatus;
|
|
questionnaireMarks?: number;
|
|
rank?: number;
|
|
totalApplicantsAtLocation?: number;
|
|
submissionDate: string;
|
|
deadline?: string;
|
|
assignedUsers: string[];
|
|
progress: number;
|
|
tags?: ('Approved' | 'Recommended')[];
|
|
isShortlisted?: boolean; // Track if DD has shortlisted this application
|
|
level1InterviewDate?: string;
|
|
level2InterviewDate?: string;
|
|
level3InterviewDate?: string;
|
|
loiApprovalDate?: string;
|
|
fddDate?: string;
|
|
securityDetailsDate?: string;
|
|
loiIssueDate?: string;
|
|
dealerCodeDate?: string;
|
|
eorDate?: string;
|
|
loaDate?: string;
|
|
eorCompleteDate?: string;
|
|
architectureAssignedDate?: string;
|
|
architectureDocumentDate?: string;
|
|
architectureCompletionDate?: string;
|
|
inaugurationDate?: string;
|
|
onboardedDate?: string;
|
|
questionnaireDate?: string;
|
|
shortlistDate?: string;
|
|
progressTracking?: any[];
|
|
questionnaireResponses?: any[]; // added for response view
|
|
stageApprovals?: any[];
|
|
participants?: Participant[];
|
|
architectureAssignedTo?: string;
|
|
architectureStatus?: string;
|
|
dealerCode?: any;
|
|
dealer?: any;
|
|
zoneId?: string;
|
|
regionId?: string;
|
|
areaId?: string;
|
|
districtId?: string;
|
|
fddAssignments?: any[];
|
|
statutoryStatus?: string;
|
|
panNumber?: string;
|
|
gstNumber?: string;
|
|
bankName?: string;
|
|
accountNumber?: string;
|
|
ifscCode?: string;
|
|
branchName?: string;
|
|
accountHolderName?: string;
|
|
registeredAddress?: string;
|
|
}
|
|
|
|
export interface Participant {
|
|
id: string;
|
|
userId: string;
|
|
participantType: string;
|
|
joinedMethod: string;
|
|
user?: {
|
|
name: string;
|
|
email: string;
|
|
role: string;
|
|
};
|
|
}
|
|
|
|
export interface User {
|
|
id: string;
|
|
name: string;
|
|
email: string;
|
|
password: string;
|
|
role: UserRole;
|
|
roleCode?: string;
|
|
avatar?: string;
|
|
}
|
|
|
|
export interface AuditLog {
|
|
id: string;
|
|
action: string;
|
|
user: string;
|
|
timestamp: string;
|
|
details: string;
|
|
}
|
|
|
|
export interface Document {
|
|
id: string;
|
|
name: string;
|
|
type: string;
|
|
uploadDate: string;
|
|
status: 'Verified' | 'Pending' | 'Rejected';
|
|
uploader?: string;
|
|
url?: string;
|
|
}
|
|
|
|
export interface WorkNote {
|
|
id: string;
|
|
user: string;
|
|
avatar?: string;
|
|
message: string;
|
|
timestamp: string;
|
|
attachments?: string[];
|
|
mentions?: string[];
|
|
}
|
|
|
|
export interface InterviewScore {
|
|
user: string;
|
|
role: string;
|
|
score?: number;
|
|
remarks: string;
|
|
feedback?: string;
|
|
}
|
|
|
|
export interface QuestionnaireResponse {
|
|
id: string;
|
|
question: string;
|
|
answer: string;
|
|
category: string;
|
|
marksScored: number;
|
|
totalMarks: number;
|
|
}
|
|
|
|
// Mock test users for different roles
|
|
export const mockUsers: User[] = [
|
|
{
|
|
id: '5',
|
|
name: 'Meera Iyer',
|
|
email: 'ddlead@royalenfield.com',
|
|
password: 'Admin@123',
|
|
role: 'DD Lead',
|
|
},
|
|
{
|
|
id: '13',
|
|
name: 'Rahul Verma',
|
|
email: 'finance@royalenfield.com',
|
|
password: 'Admin@123',
|
|
role: 'Finance',
|
|
},
|
|
{
|
|
id: '14',
|
|
name: 'Amit Sharma',
|
|
email: 'dealer@royalenfield.com',
|
|
password: 'Admin@123',
|
|
role: 'Dealer',
|
|
},
|
|
{
|
|
id: '15',
|
|
name: 'Laxman H',
|
|
email: 'admin@royalenfield.com',
|
|
password: 'Admin@123',
|
|
role: 'DD Lead',
|
|
},
|
|
{
|
|
id: '16',
|
|
name: 'Yashwin',
|
|
email: 'yashwin@gmail.com',
|
|
password: 'Admin@123',
|
|
role: 'ZBH',
|
|
},
|
|
{
|
|
id: '17',
|
|
name: 'Kenil',
|
|
email: 'kenil@gmail.com',
|
|
password: 'Admin@123',
|
|
role: 'DD Lead',
|
|
},
|
|
{
|
|
id: '18',
|
|
name: 'Lince',
|
|
email: 'lince@gmail.com',
|
|
password: 'Admin@123',
|
|
role: 'DD Admin',
|
|
},
|
|
];
|
|
|
|
// Mock current user (default)
|
|
export let currentUser: User = mockUsers[0];
|
|
|
|
// Mock applications
|
|
export const mockApplications: Application[] = [
|
|
{
|
|
id: '1',
|
|
registrationNumber: 'APP-001',
|
|
name: 'Amit Sharma',
|
|
email: 'amit.sharma@email.com',
|
|
phone: '+91 98765 43210',
|
|
age: 35,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Bandra West, Mumbai, Maharashtra',
|
|
businessAddress: 'Andheri East, Mumbai, Maharashtra',
|
|
preferredLocation: 'Mumbai',
|
|
state: 'Maharashtra',
|
|
ownsBike: true,
|
|
pastExperience: '5 years in automobile sales, previously worked with Honda',
|
|
status: 'Level 1 Interview Pending',
|
|
questionnaireMarks: 85,
|
|
rank: 1,
|
|
totalApplicantsAtLocation: 3,
|
|
submissionDate: '2025-10-01',
|
|
assignedUsers: ['DD-ZM', 'RBM'],
|
|
progress: 40,
|
|
isShortlisted: true,
|
|
level1InterviewDate: '2025-10-08'
|
|
},
|
|
{
|
|
id: '2',
|
|
registrationNumber: 'APP-002',
|
|
name: 'Priya Deshmukh',
|
|
email: 'priya.d@email.com',
|
|
phone: '+91 98765 43211',
|
|
age: 29,
|
|
education: 'Postgraduate',
|
|
residentialAddress: 'Whitefield, Bangalore, Karnataka',
|
|
businessAddress: 'MG Road, Bangalore, Karnataka',
|
|
preferredLocation: 'Bangalore',
|
|
state: 'Karnataka',
|
|
ownsBike: true,
|
|
pastExperience: '3 years in retail management, MBA in Marketing',
|
|
status: 'Level 2 Approved',
|
|
questionnaireMarks: 92,
|
|
rank: 1,
|
|
totalApplicantsAtLocation: 5,
|
|
submissionDate: '2025-09-28',
|
|
assignedUsers: ['ZBH', 'DD Lead'],
|
|
progress: 65,
|
|
tags: ['Approved'],
|
|
isShortlisted: true,
|
|
level1InterviewDate: '2025-10-02',
|
|
level2InterviewDate: '2025-10-05'
|
|
},
|
|
{
|
|
id: '3',
|
|
registrationNumber: 'APP-003',
|
|
name: 'Rahul Verma',
|
|
email: 'rahul.v@email.com',
|
|
phone: '+91 98765 43212',
|
|
age: 42,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Anna Nagar, Chennai, Tamil Nadu',
|
|
businessAddress: 'T Nagar, Chennai, Tamil Nadu',
|
|
preferredLocation: 'Chennai',
|
|
state: 'Tamil Nadu',
|
|
ownsBike: false,
|
|
pastExperience: '10 years in business development, experience with 2-wheeler industry',
|
|
status: 'Shortlisted',
|
|
questionnaireMarks: 78,
|
|
rank: 2,
|
|
totalApplicantsAtLocation: 5,
|
|
submissionDate: '2025-10-02',
|
|
assignedUsers: ['DD'],
|
|
progress: 30,
|
|
isShortlisted: true
|
|
},
|
|
{
|
|
id: '4',
|
|
registrationNumber: 'APP-004',
|
|
name: 'Sneha Patel',
|
|
email: 'sneha.p@email.com',
|
|
phone: '+91 98765 43213',
|
|
age: 31,
|
|
education: 'Postgraduate',
|
|
residentialAddress: 'Satellite, Ahmedabad, Gujarat',
|
|
businessAddress: 'CG Road, Ahmedabad, Gujarat',
|
|
preferredLocation: 'Ahmedabad',
|
|
state: 'Gujarat',
|
|
ownsBike: true,
|
|
pastExperience: 'Family business in automobile accessories, 4 years experience',
|
|
status: 'EOR In Progress',
|
|
questionnaireMarks: 88,
|
|
rank: 1,
|
|
totalApplicantsAtLocation: 2,
|
|
submissionDate: '2025-09-15',
|
|
assignedUsers: ['DD', 'DDL'],
|
|
progress: 85,
|
|
isShortlisted: true,
|
|
level1InterviewDate: '2025-09-20',
|
|
level2InterviewDate: '2025-09-23',
|
|
level3InterviewDate: '2025-09-26',
|
|
loiApprovalDate: '2025-09-28',
|
|
fddDate: '2025-09-30',
|
|
securityDetailsDate: '2025-10-02',
|
|
loiIssueDate: '2025-10-04',
|
|
eorDate: '2025-10-06'
|
|
},
|
|
{
|
|
id: '5',
|
|
registrationNumber: 'APP-005',
|
|
name: 'Vikram Singh',
|
|
email: 'vikram.s@email.com',
|
|
phone: '+91 98765 43214',
|
|
age: 38,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Vijay Nagar, Indore, Madhya Pradesh',
|
|
businessAddress: 'MG Road, Indore, Madhya Pradesh',
|
|
preferredLocation: 'Indore',
|
|
state: 'Madhya Pradesh',
|
|
ownsBike: true,
|
|
pastExperience: '7 years in sales and marketing, Royal Enfield enthusiast',
|
|
status: 'Questionnaire Pending',
|
|
rank: 3,
|
|
totalApplicantsAtLocation: 15,
|
|
submissionDate: '2025-10-05',
|
|
deadline: '2025-10-12',
|
|
assignedUsers: ['DD'],
|
|
progress: 15,
|
|
isShortlisted: true // Shortlisted by DD, now appears in DD Lead's Opportunity Requests
|
|
},
|
|
{
|
|
id: '6',
|
|
registrationNumber: 'APP-006',
|
|
name: 'Anjali Verma',
|
|
email: 'anjali.v@email.com',
|
|
phone: '+91 98765 43215',
|
|
age: 27,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Koramangala, Bangalore, Karnataka',
|
|
businessAddress: 'Indiranagar, Bangalore, Karnataka',
|
|
preferredLocation: 'Bangalore',
|
|
state: 'Karnataka',
|
|
ownsBike: false,
|
|
pastExperience: '2 years in customer service, degree in Business Management',
|
|
status: 'Questionnaire Completed',
|
|
questionnaireMarks: 72,
|
|
rank: 4,
|
|
totalApplicantsAtLocation: 5,
|
|
submissionDate: '2025-10-06',
|
|
assignedUsers: ['DD'],
|
|
progress: 20,
|
|
isShortlisted: true // Shortlisted by DD, now appears in DD Lead's Opportunity Requests
|
|
},
|
|
{
|
|
id: '7',
|
|
registrationNumber: 'APP-007',
|
|
name: 'Karthik Iyer',
|
|
email: 'karthik.i@email.com',
|
|
phone: '+91 98765 43216',
|
|
age: 33,
|
|
education: 'Postgraduate',
|
|
residentialAddress: 'Powai, Mumbai, Maharashtra',
|
|
businessAddress: 'Lower Parel, Mumbai, Maharashtra',
|
|
preferredLocation: 'Mumbai',
|
|
state: 'Maharashtra',
|
|
ownsBike: true,
|
|
pastExperience: 'MBA in Marketing, 6 years in automotive sector',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-07',
|
|
assignedUsers: ['DD'],
|
|
progress: 10,
|
|
isShortlisted: true // Shortlisted by DD, now appears in DD Lead's Opportunity Requests
|
|
},
|
|
{
|
|
id: '8',
|
|
registrationNumber: 'APP-008',
|
|
name: 'Deepak Kumar',
|
|
email: 'deepak.k@email.com',
|
|
phone: '+91 98765 43217',
|
|
age: 45,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Vaishali Nagar, Jaipur, Rajasthan',
|
|
businessAddress: 'MI Road, Jaipur, Rajasthan',
|
|
preferredLocation: 'Jaipur',
|
|
state: 'Rajasthan',
|
|
ownsBike: true,
|
|
pastExperience: '15 years running family automobile business',
|
|
status: 'Questionnaire Completed',
|
|
questionnaireMarks: 95,
|
|
rank: 1,
|
|
totalApplicantsAtLocation: 8,
|
|
submissionDate: '2025-10-06',
|
|
assignedUsers: ['DD'],
|
|
progress: 20,
|
|
isShortlisted: true // Shortlisted by DD, now appears in DD Lead's Opportunity Requests
|
|
},
|
|
// Non-opportunity Requests (Lead Generation) - Applications from locations where we're NOT offering dealerships
|
|
{
|
|
id: '9',
|
|
registrationNumber: 'APP-009',
|
|
name: 'Rohan Mehta',
|
|
email: 'rohan.m@email.com',
|
|
phone: '+91 98765 43218',
|
|
age: 28,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Sector 15, Chandigarh',
|
|
businessAddress: 'Sector 17, Chandigarh',
|
|
preferredLocation: 'Chandigarh',
|
|
state: 'Chandigarh',
|
|
ownsBike: true,
|
|
pastExperience: '3 years in retail, passionate about motorcycles',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-08',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Chandigarh
|
|
},
|
|
{
|
|
id: '10',
|
|
registrationNumber: 'APP-010',
|
|
name: 'Shalini Nair',
|
|
email: 'shalini.n@email.com',
|
|
phone: '+91 98765 43219',
|
|
age: 34,
|
|
education: 'Postgraduate',
|
|
residentialAddress: 'Kaloor, Kochi, Kerala',
|
|
businessAddress: 'MG Road, Kochi, Kerala',
|
|
preferredLocation: 'Kochi',
|
|
state: 'Kerala',
|
|
ownsBike: false,
|
|
pastExperience: '5 years in hospitality management, interested in automotive business',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-07',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Kochi
|
|
},
|
|
{
|
|
id: '11',
|
|
registrationNumber: 'APP-011',
|
|
name: 'Aditya Bose',
|
|
email: 'aditya.b@email.com',
|
|
phone: '+91 98765 43220',
|
|
age: 41,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Salt Lake, Kolkata, West Bengal',
|
|
businessAddress: 'Park Street, Kolkata, West Bengal',
|
|
preferredLocation: 'Kolkata',
|
|
state: 'West Bengal',
|
|
ownsBike: true,
|
|
pastExperience: '12 years running automobile service center',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-06',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Kolkata
|
|
},
|
|
{
|
|
id: '12',
|
|
registrationNumber: 'APP-012',
|
|
name: 'Kavita Reddy',
|
|
email: 'kavita.r@email.com',
|
|
phone: '+91 98765 43221',
|
|
age: 30,
|
|
education: 'Postgraduate',
|
|
residentialAddress: 'Banjara Hills, Hyderabad, Telangana',
|
|
businessAddress: 'HITEC City, Hyderabad, Telangana',
|
|
preferredLocation: 'Hyderabad',
|
|
state: 'Telangana',
|
|
ownsBike: true,
|
|
pastExperience: 'MBA, 4 years in business development',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-05',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Hyderabad
|
|
},
|
|
{
|
|
id: '13',
|
|
registrationNumber: 'APP-013',
|
|
name: 'Manish Gupta',
|
|
email: 'manish.g@email.com',
|
|
phone: '+91 98765 43222',
|
|
age: 37,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Gomti Nagar, Lucknow, Uttar Pradesh',
|
|
businessAddress: 'Hazratganj, Lucknow, Uttar Pradesh',
|
|
preferredLocation: 'Lucknow',
|
|
state: 'Uttar Pradesh',
|
|
ownsBike: true,
|
|
pastExperience: '8 years in automobile parts distribution',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-04',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Lucknow
|
|
},
|
|
{
|
|
id: '14',
|
|
registrationNumber: 'APP-014',
|
|
name: 'Neha Kapoor',
|
|
email: 'neha.k@email.com',
|
|
phone: '+91 98765 43223',
|
|
age: 26,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Model Town, Ludhiana, Punjab',
|
|
businessAddress: 'Mall Road, Ludhiana, Punjab',
|
|
preferredLocation: 'Ludhiana',
|
|
state: 'Punjab',
|
|
ownsBike: false,
|
|
pastExperience: 'Fresh graduate, family owns automotive business',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-03',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Ludhiana
|
|
},
|
|
{
|
|
id: '15',
|
|
registrationNumber: 'APP-015',
|
|
name: 'Prakash Joshi',
|
|
email: 'prakash.j@email.com',
|
|
phone: '+91 98765 43224',
|
|
age: 44,
|
|
education: 'Graduate',
|
|
residentialAddress: 'Ramnagar, Nagpur, Maharashtra',
|
|
businessAddress: 'Sitabuldi, Nagpur, Maharashtra',
|
|
preferredLocation: 'Nagpur',
|
|
state: 'Maharashtra',
|
|
ownsBike: true,
|
|
pastExperience: '15 years experience with multiple 2-wheeler brands',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-02',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Nagpur
|
|
},
|
|
{
|
|
id: '16',
|
|
registrationNumber: 'APP-016',
|
|
name: 'Sunita Desai',
|
|
email: 'sunita.d@email.com',
|
|
phone: '+91 98765 43225',
|
|
age: 32,
|
|
education: 'Postgraduate',
|
|
residentialAddress: 'Aundh, Pune, Maharashtra',
|
|
businessAddress: 'Koregaon Park, Pune, Maharashtra',
|
|
preferredLocation: 'Pune',
|
|
state: 'Maharashtra',
|
|
ownsBike: true,
|
|
pastExperience: '6 years in sales management, Royal Enfield enthusiast',
|
|
status: 'Submitted',
|
|
submissionDate: '2025-10-01',
|
|
assignedUsers: [],
|
|
progress: 10,
|
|
isShortlisted: false // Non-opportunity lead - not offering dealership in Pune
|
|
}
|
|
];
|
|
|
|
// Mock dashboard statistics
|
|
export const dashboardStats = {
|
|
totalApplications: 150,
|
|
loaIssued: 12,
|
|
level1Pending: 23,
|
|
level2Pending: 15,
|
|
level3Pending: 8,
|
|
eorInProgress: 6,
|
|
disqualified: 18,
|
|
pendingReminders: 34,
|
|
shortlistedToday: 5,
|
|
pendingShortlisting: 4 // New applications waiting to be shortlisted by DD
|
|
};
|
|
|
|
// Mock recent activities
|
|
export const recentActivities = [
|
|
{
|
|
id: '1',
|
|
action: 'Approved',
|
|
applicationId: 'APP-002',
|
|
user: 'ZBH',
|
|
timestamp: '2025-10-09 10:45 AM'
|
|
},
|
|
{
|
|
id: '2',
|
|
action: 'Interview Scheduled',
|
|
applicationId: 'APP-001',
|
|
user: 'DD-ZM',
|
|
timestamp: '2025-10-09 09:30 AM'
|
|
},
|
|
{
|
|
id: '3',
|
|
action: 'Document Uploaded',
|
|
applicationId: 'APP-004',
|
|
user: 'Sneha Patel',
|
|
timestamp: '2025-10-09 08:15 AM'
|
|
},
|
|
{
|
|
id: '4',
|
|
action: 'Reminder Sent',
|
|
applicationId: 'APP-005',
|
|
user: 'DD',
|
|
timestamp: '2025-10-08 05:20 PM'
|
|
}
|
|
];
|
|
|
|
// Mock audit logs
|
|
export const mockAuditLogs: AuditLog[] = [
|
|
{
|
|
id: '1',
|
|
action: 'Application Submitted',
|
|
user: 'Amit Sharma',
|
|
timestamp: '2025-10-01 02:30 PM',
|
|
details: 'Initial application form submitted'
|
|
},
|
|
{
|
|
id: '2',
|
|
action: 'Questionnaire Link Sent',
|
|
user: 'System',
|
|
timestamp: '2025-10-01 02:31 PM',
|
|
details: 'Automated opportunity email sent with questionnaire link'
|
|
},
|
|
{
|
|
id: '3',
|
|
action: 'Questionnaire Completed',
|
|
user: 'Amit Sharma',
|
|
timestamp: '2025-10-03 11:20 AM',
|
|
details: 'Scored 85/100'
|
|
},
|
|
{
|
|
id: '4',
|
|
action: 'Application Shortlisted',
|
|
user: 'Rajesh Kumar (DD)',
|
|
timestamp: '2025-10-04 03:45 PM',
|
|
details: 'Shortlisted for Level 1 interview'
|
|
},
|
|
{
|
|
id: '5',
|
|
action: 'Assigned to DD-ZM',
|
|
user: 'Rajesh Kumar (DD)',
|
|
timestamp: '2025-10-04 03:46 PM',
|
|
details: 'Application forwarded for Level 1 interview scheduling'
|
|
}
|
|
];
|
|
|
|
// Mock documents
|
|
export const mockDocuments: Document[] = [
|
|
{
|
|
id: '1',
|
|
name: 'Aadhaar Card.pdf',
|
|
type: 'PDF',
|
|
uploadDate: '2025-10-01',
|
|
status: 'Verified',
|
|
uploader: 'Amit Sharma'
|
|
},
|
|
{
|
|
id: '2',
|
|
name: 'PAN Card.pdf',
|
|
type: 'PDF',
|
|
uploadDate: '2025-10-01',
|
|
status: 'Verified',
|
|
uploader: 'Amit Sharma'
|
|
},
|
|
{
|
|
id: '3',
|
|
name: 'Business Plan.pdf',
|
|
type: 'PDF',
|
|
uploadDate: '2025-10-02',
|
|
status: 'Pending',
|
|
uploader: 'Amit Sharma'
|
|
},
|
|
{
|
|
id: '4',
|
|
name: 'Address Proof.pdf',
|
|
type: 'PDF',
|
|
uploadDate: '2025-10-02',
|
|
status: 'Verified',
|
|
uploader: 'Amit Sharma'
|
|
}
|
|
];
|
|
|
|
// Mock work notes
|
|
export const mockWorkNotes: WorkNote[] = [
|
|
{
|
|
id: '1',
|
|
user: 'Mark Johnson',
|
|
message: "I'm currently reviewing the budget allocation and comparing it with Q3 spending.\n@Sarah Chen can you clarify the expected timeline for the LinkedIn ads campaign? Also, do we have approval from legal for the content strategy?",
|
|
timestamp: '2024-10-07 13:45',
|
|
mentions: ['Sarah Chen']
|
|
},
|
|
{
|
|
id: '2',
|
|
user: 'Sarah Chen',
|
|
message: "Hi @Lisa Wong ! For the LinkedIn campaign:\n\n• Launch: November 1st\n• Duration: 8 weeks\n• Budget distribution: 40% first 4 weeks, 60% last 4 weeks\n\nRegarding legal approval - I'll coordinate with the legal team this week. The content strategy follows our established brand guidelines.",
|
|
timestamp: '2024-10-07 15:45',
|
|
mentions: ['Lisa Wong']
|
|
},
|
|
{
|
|
id: '3',
|
|
user: 'Rajesh Kumar',
|
|
message: 'Strong candidate, good communication skills. Recommend for Level 1 interview.',
|
|
timestamp: '2025-10-04 03:45 PM'
|
|
},
|
|
{
|
|
id: '4',
|
|
user: 'Suresh Reddy',
|
|
message: '@Rajesh Kumar Agreed. Scheduling interview for Oct 12th.',
|
|
timestamp: '2025-10-04 04:10 PM',
|
|
mentions: ['Rajesh Kumar']
|
|
}
|
|
];
|
|
|
|
// Mock interview scores
|
|
export const mockLevel1Scores: InterviewScore[] = [
|
|
{
|
|
user: 'Suresh Reddy',
|
|
role: 'DD-ZM',
|
|
score: 42,
|
|
remarks: 'Strong business acumen, clear vision',
|
|
feedback: 'Excellent presentation skills'
|
|
},
|
|
{
|
|
user: 'Arjun Malhotra',
|
|
role: 'RBM',
|
|
score: 40,
|
|
remarks: 'Good understanding of market',
|
|
feedback: 'Passionate about Royal Enfield brand'
|
|
}
|
|
];
|
|
|
|
export const locations = [
|
|
'Mumbai',
|
|
'Delhi',
|
|
'Bangalore',
|
|
'Chennai',
|
|
'Kolkata',
|
|
'Hyderabad',
|
|
'Pune',
|
|
'Ahmedabad',
|
|
'Indore',
|
|
'Jaipur'
|
|
];
|
|
|
|
export const states = [
|
|
'Andaman & Nicobar',
|
|
'Andhra Pradesh',
|
|
'Arunachal Pradesh',
|
|
'Assam',
|
|
'Bihar',
|
|
'Chandigarh',
|
|
'Chhattisgarh',
|
|
'Delhi & NCR',
|
|
'Goa',
|
|
'Gujarat',
|
|
'Himachal Pradesh',
|
|
'Haryana',
|
|
'Jammu & Kashmir',
|
|
'Jharkhand',
|
|
'Karnataka',
|
|
'Kerala',
|
|
'Ladakh',
|
|
'Madhya Pradesh',
|
|
'Maharashtra',
|
|
'Mizoram',
|
|
'Meghalaya',
|
|
'Manipur',
|
|
'Nagaland',
|
|
'Odisha',
|
|
'Puducherry',
|
|
'Punjab',
|
|
'Rajasthan',
|
|
'Sikkim',
|
|
'Tamilnadu',
|
|
'Telangana',
|
|
'Tripura',
|
|
'Uttar Pradesh',
|
|
'Uttarakhand',
|
|
'West Bengal'
|
|
];
|
|
|
|
// Mock questionnaire responses
|
|
export const mockQuestionnaireResponses: QuestionnaireResponse[] = [
|
|
{
|
|
id: '1',
|
|
question: 'State (Applied for)',
|
|
answer: 'Maharashtra',
|
|
category: 'Personal Information',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '2',
|
|
question: 'Contact Number',
|
|
answer: '+91 98765 43210',
|
|
category: 'Personal Information',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '3',
|
|
question: 'Age',
|
|
answer: '35',
|
|
category: 'Personal Information',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '4',
|
|
question: 'Educational Qualification',
|
|
answer: 'Graduate',
|
|
category: 'Personal Information',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '5',
|
|
question: 'What is your Personal Networth',
|
|
answer: 'Between 5 - 10 Crores',
|
|
category: 'Financial Information',
|
|
marksScored: 8,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '6',
|
|
question: 'Are you a native of the Proposed Location?',
|
|
answer: 'Native',
|
|
category: 'Location & Background',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '7',
|
|
question: 'Why do you want to partner with Royal Enfield?',
|
|
answer: 'Passionate about the brand',
|
|
category: 'Motivation',
|
|
marksScored: 8,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '8',
|
|
question: 'Who will be the partners in proposed company?',
|
|
answer: 'Immediate Family',
|
|
category: 'Business Structure',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '9',
|
|
question: 'Who will be managing the Royal Enfield dealership',
|
|
answer: 'I will be managing full time',
|
|
category: 'Business Structure',
|
|
marksScored: 7,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '10',
|
|
question: 'Proposed Firm Type',
|
|
answer: 'Private Limited Company',
|
|
category: 'Business Structure',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '11',
|
|
question: 'What are you currently doing?',
|
|
answer: 'Running automobile dealership',
|
|
category: 'Professional Background',
|
|
marksScored: 7,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '12',
|
|
question: 'Do you own a property in proposed location?',
|
|
answer: 'Yes',
|
|
category: 'Infrastructure',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '13',
|
|
question: 'How are you planning to invest in the Royal Enfield business',
|
|
answer: 'I will be investing my own funds',
|
|
category: 'Financial Planning',
|
|
marksScored: 8,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '14',
|
|
question: 'What are your plans of expansion with RE?',
|
|
answer: 'Willing to expand by myself',
|
|
category: 'Growth & Expansion',
|
|
marksScored: 6,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '15',
|
|
question: 'Will you be expanding to any other automobile OEM in the future?',
|
|
answer: 'No',
|
|
category: 'Growth & Expansion',
|
|
marksScored: 5,
|
|
totalMarks: 5
|
|
},
|
|
{
|
|
id: '16',
|
|
question: 'Do you own a Royal Enfield?',
|
|
answer: 'Yes, it is registered in my name',
|
|
category: 'Brand Affinity',
|
|
marksScored: 10,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '17',
|
|
question: 'Do you go for long leisure rides',
|
|
answer: 'Yes, with the Royal Enfield riders',
|
|
category: 'Brand Affinity',
|
|
marksScored: 8,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '18',
|
|
question: 'What special initiatives do you plan to implement if selected as business partner for Royal Enfield?',
|
|
answer: 'I plan to create a strong RE community hub with regular riding events, organize monthly maintenance workshops, establish a custom accessories corner, and partner with local tourism boards for adventure tours.',
|
|
category: 'Vision & Strategy',
|
|
marksScored: 9,
|
|
totalMarks: 10
|
|
},
|
|
{
|
|
id: '19',
|
|
question: 'Please elaborate your present business/employment.',
|
|
answer: 'Currently managing a multi-brand automobile dealership with 5 years experience. Team of 12 staff, annual turnover of 8 Crores. Strong network in the automobile industry.',
|
|
category: 'Professional Background',
|
|
marksScored: 8,
|
|
totalMarks: 10
|
|
}
|
|
];
|
|
|
|
// F&F Department Types
|
|
export const departments = [
|
|
'Warranty Department',
|
|
'Accessories Department',
|
|
'Sales Department',
|
|
'RTO Department',
|
|
'Service Department',
|
|
'Parts Department',
|
|
'Finance Department',
|
|
'Insurance Department',
|
|
'Inventory Department',
|
|
'Marketing Department',
|
|
'HR Department',
|
|
'IT Department',
|
|
'Legal Department',
|
|
'Quality Department',
|
|
'Logistics Department',
|
|
'Customer Relations Department'
|
|
];
|
|
|
|
// F&F Related Interfaces
|
|
export interface DepartmentResponse {
|
|
id: string;
|
|
departmentName: string;
|
|
status: 'Pending' | 'Dues' | 'No Dues';
|
|
remarks?: string;
|
|
description?: string;
|
|
amountType?: 'Payable Amount' | 'Recovery Amount';
|
|
amount?: number;
|
|
documentUrl?: string;
|
|
submittedDate?: string;
|
|
submittedBy?: string;
|
|
}
|
|
|
|
export interface FnFCase {
|
|
id: string;
|
|
caseNumber: string;
|
|
dealerName: string;
|
|
dealerCode: string;
|
|
dealershipName: string;
|
|
location: string;
|
|
requestType: 'Resignation' | 'Termination';
|
|
originalRequestId: string;
|
|
status: 'New' | 'In Progress' | 'Under Review' | 'Completed';
|
|
submittedOn: string;
|
|
departmentResponses: DepartmentResponse[];
|
|
financeReportStatus: 'Pending' | 'In Progress' | 'Completed';
|
|
financeRemarks?: string;
|
|
totalPayableAmount?: number;
|
|
totalRecoveryAmount?: number;
|
|
completedOn?: string;
|
|
lastOperationalDateSales: string;
|
|
lastOperationalDateServices: string;
|
|
gst: string;
|
|
typeOfClosure: 'Partial' | 'Complete';
|
|
}
|
|
|
|
// Mock F&F Cases
|
|
export const mockFnFCases: FnFCase[] = [
|
|
{
|
|
id: '1',
|
|
caseNumber: 'FNF-2025-001',
|
|
dealerName: 'Amit Sharma Motors',
|
|
dealerCode: 'DL-MH-001',
|
|
dealershipName: 'Royal Enfield Mumbai',
|
|
location: 'Mumbai, Maharashtra',
|
|
requestType: 'Resignation',
|
|
originalRequestId: 'RES-001',
|
|
status: 'New',
|
|
submittedOn: '2025-10-13',
|
|
departmentResponses: departments.map((dept, index) => ({
|
|
id: `dept-${index + 1}`,
|
|
departmentName: dept,
|
|
status: 'Pending' as const
|
|
})),
|
|
financeReportStatus: 'Pending',
|
|
lastOperationalDateSales: '2025-10-05',
|
|
lastOperationalDateServices: '2025-10-08',
|
|
gst: '27AABCU9603R1ZW',
|
|
typeOfClosure: 'Complete'
|
|
},
|
|
{
|
|
id: '2',
|
|
caseNumber: 'FNF-2025-002',
|
|
dealerName: 'Priya Automobiles',
|
|
dealerCode: 'DL-KA-045',
|
|
dealershipName: 'Royal Enfield Bangalore',
|
|
location: 'Bangalore, Karnataka',
|
|
requestType: 'Resignation',
|
|
originalRequestId: 'RES-002',
|
|
status: 'In Progress',
|
|
submittedOn: '2025-10-10',
|
|
departmentResponses: departments.map((dept, index) => ({
|
|
id: `dept-${index + 1}`,
|
|
departmentName: dept,
|
|
status: index < 5 ? 'No Dues' as const : index < 8 ? 'Pending' as const : 'Dues' as const,
|
|
remarks: index < 5 ? 'No outstanding dues' : index < 8 ? undefined : 'Outstanding amount identified',
|
|
submittedDate: index < 5 ? '2025-10-11' : index >= 8 ? '2025-10-12' : undefined,
|
|
amountType: index >= 8 && index < 10 ? 'Recovery Amount' as const : undefined,
|
|
amount: index >= 8 && index < 10 ? 15000 + (index * 2000) : undefined
|
|
})),
|
|
financeReportStatus: 'Pending',
|
|
lastOperationalDateSales: '2025-09-28',
|
|
lastOperationalDateServices: '2025-10-02',
|
|
gst: '29AABCU9604R1ZY',
|
|
typeOfClosure: 'Partial'
|
|
},
|
|
{
|
|
id: '3',
|
|
caseNumber: 'FNF-2025-003',
|
|
dealerName: 'Vikram Patil Motors',
|
|
dealerCode: 'DL-MH-025',
|
|
dealershipName: 'Royal Enfield Pune',
|
|
location: 'Pune, Maharashtra',
|
|
requestType: 'Termination',
|
|
originalRequestId: 'TERM-001',
|
|
status: 'Under Review',
|
|
submittedOn: '2025-09-25',
|
|
departmentResponses: departments.map((dept, index) => ({
|
|
id: `dept-${index + 1}`,
|
|
departmentName: dept,
|
|
status: index < 10 ? 'Dues' as const : index < 14 ? 'No Dues' as const : 'Pending' as const,
|
|
remarks: index < 10 ? 'Outstanding amount identified' : index < 14 ? 'Cleared' : undefined,
|
|
amountType: index === 2 ? 'Recovery Amount' as const : index === 5 ? 'Payable Amount' as const : undefined,
|
|
amount: index === 2 ? 45000 : index === 5 ? 12000 : undefined,
|
|
submittedDate: index < 14 ? '2025-10-05' : undefined
|
|
})),
|
|
financeReportStatus: 'In Progress',
|
|
totalPayableAmount: 12000,
|
|
totalRecoveryAmount: 45000,
|
|
lastOperationalDateSales: '2025-09-15',
|
|
lastOperationalDateServices: '2025-09-20',
|
|
gst: '27AABCU9604R1ZX',
|
|
typeOfClosure: 'Complete'
|
|
}
|
|
]; |