🤝 Affiliate Management Dashboard

Manage affiliate applications, approvals & coupon codes

🔧 Loading configuration from server...
📡 Server: http://localhost:3000
0
Total Requests
0
Pending
0
Approved
0
Rejected
0
Active Coupons
0
Suspended

🔍 Filters & Actions

Loading affiliate requests...

${request.firstName} ${request.lastName}

Application ID: ${request.applicationId || 'N/A'}

Status: ${(request.status || 'pending').toUpperCase()}

Personal Information

Name: ${request.firstName} ${request.lastName}

Email: ${request.email}

Phone: ${request.phone}

Gender: ${request.gender}

Date of Birth: ${request.dateOfBirth}

Address: ${request.address}

City: ${request.city}

Pincode: ${request.pincode}

Professional Details

Experience Level: ${request.experienceLevel}

Primary Platform: ${request.socialMediaPlatforms}

Total Followers: ${formatNumber(request.followersCount)}

Primary Profile Categories:

${request.primaryProfile ? request.primaryProfile.map(cat => `${cat}`).join('') : 'None specified'}
${request.couponCode ? `

Coupon Details

Coupon Code: ${request.couponCode}

Customer Discount: ${request.discountPercentage}%

Affiliate Commission: ${request.affiliateCommission}%

Status: ${request.couponActive ? 'Active' : 'Inactive'}

Usage: ${request.usageCount || 0} / ${request.usageLimit || 'Unlimited'}

${request.couponNotes ? `

Notes: ${request.couponNotes}

` : ''}
` : ''}

Social Media Handles

Application Details

Why Join Us:

"${request.whyJoin || 'No response provided'}"


Submitted: ${formatDate(request.submittedAt)}

User Email: ${request.currentUserEmail || 'N/A'}

${request.approvedAt ? `

Approved At: ${formatDate(request.approvedAt)}

` : ''} ${request.rejectedAt ? `

Rejected At: ${formatDate(request.rejectedAt)}

` : ''} ${request.rejectionReason ? `

Rejection Reason: ${request.rejectionReason}

` : ''}
`); } function formatDate(dateString) { if (!dateString) return 'N/A'; const date = new Date(dateString); if (isNaN(date.getTime())) return 'Invalid Date'; return date.toLocaleString('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }); } function formatNumber(num) { if (!num) return '0'; return parseInt(num).toLocaleString(); } function showLoading() { document.getElementById('loadingState').style.display = 'block'; document.getElementById('errorState').style.display = 'none'; document.getElementById('emptyState').style.display = 'none'; document.getElementById('requestsContainer').style.display = 'none'; } function hideLoading() { document.getElementById('loadingState').style.display = 'none'; } function showError(message) { document.getElementById('errorMessage').textContent = message; document.getElementById('errorState').style.display = 'block'; document.getElementById('emptyState').style.display = 'none'; document.getElementById('requestsContainer').style.display = 'none'; } function showEmptyState() { document.getElementById('emptyState').style.display = 'block'; document.getElementById('requestsContainer').style.display = 'none'; } function hideEmptyState() { document.getElementById('emptyState').style.display = 'none'; } function hideRequests() { document.getElementById('requestsContainer').style.display = 'none'; }