prefix('contact')->name('contact.')->group(function () { Route::resource('contact-dashboard', 'Modules\Crm\Http\Controllers\DashboardController'); Route::get('contact-profile', [Modules\Crm\Http\Controllers\ManageProfileController::class, 'getProfile']); Route::post('contact-password-update', [Modules\Crm\Http\Controllers\ManageProfileController::class, 'updatePassword']); Route::post('contact-profile-update', [Modules\Crm\Http\Controllers\ManageProfileController::class, 'updateProfile']); Route::get('contact-purchases', [Modules\Crm\Http\Controllers\PurchaseController::class, 'getPurchaseList']); Route::get('contact-sells', [Modules\Crm\Http\Controllers\SellController::class, 'getSellList']); Route::get('contact-ledger', [Modules\Crm\Http\Controllers\LedgerController::class, 'index']); Route::get('contact-get-ledger', [Modules\Crm\Http\Controllers\LedgerController::class, 'getLedger']); Route::resource('bookings', 'Modules\Crm\Http\Controllers\ContactBookingController'); Route::resource('order-request', 'Modules\Crm\Http\Controllers\OrderRequestController'); Route::get('products/list', [\App\Http\Controllers\ProductController::class, 'getProducts']); Route::get('order-request/get_product_row/{variation_id}/{location_id}', [Modules\Crm\Http\Controllers\OrderRequestController::class, 'getProductRow']); }); Route::middleware('web', 'authh', 'auth', 'SetSessionData', 'language', 'timezone', 'AdminSidebarMenu', 'CheckUserLogin')->prefix('crm')->name('crm.')->group(function () { Route::get('commissions', [Modules\Crm\Http\Controllers\ContactLoginController::class, 'commissions']); Route::get('all-contacts-login', [Modules\Crm\Http\Controllers\ContactLoginController::class, 'allContactsLoginList']); Route::resource('contact-login', 'Modules\Crm\Http\Controllers\ContactLoginController')->except(['show']); Route::resource('follow-ups', 'Modules\Crm\Http\Controllers\ScheduleController'); Route::get('todays-follow-ups', [Modules\Crm\Http\Controllers\ScheduleController::class, 'getTodaysSchedule']); Route::get('lead-follow-ups', [Modules\Crm\Http\Controllers\ScheduleController::class, 'getLeadSchedule']); Route::get('get-invoices', [Modules\Crm\Http\Controllers\ScheduleController::class, 'getInvoicesForFollowUp']); Route::get('get-followup-groups', [Modules\Crm\Http\Controllers\ScheduleController::class, 'getFollowUpGroups']); Route::get('all-users-call-logs', [Modules\Crm\Http\Controllers\CallLogController::class, 'allUsersCallLog']); Route::resource('follow-up-log', 'Modules\Crm\Http\Controllers\ScheduleLogController'); Route::get('install', [Modules\Crm\Http\Controllers\InstallController::class, 'index']); Route::post('install', [Modules\Crm\Http\Controllers\InstallController::class, 'install']); Route::get('install/uninstall', [Modules\Crm\Http\Controllers\InstallController::class, 'uninstall']); Route::get('install/update', [Modules\Crm\Http\Controllers\InstallController::class, 'update']); Route::resource('leads', 'Modules\Crm\Http\Controllers\LeadController'); Route::get('lead/{id}/convert', [Modules\Crm\Http\Controllers\LeadController::class, 'showConvertForm']); Route::post('lead/{id}/convert', [Modules\Crm\Http\Controllers\LeadController::class, 'convertToCustomer']); Route::get('lead/{id}/archive', [Modules\Crm\Http\Controllers\LeadController::class, 'archive']); Route::get('lead/{id}/activate', [Modules\Crm\Http\Controllers\LeadController::class, 'activate']); Route::get('lead/{id}/post-life-stage', [Modules\Crm\Http\Controllers\LeadController::class, 'postLifeStage']); Route::get('{id}/send-campaign-notification', [Modules\Crm\Http\Controllers\CampaignController::class, 'sendNotification']); Route::resource('campaigns', 'Modules\Crm\Http\Controllers\CampaignController'); Route::get('dashboard', [Modules\Crm\Http\Controllers\CrmDashboardController::class, 'index']); Route::get('reports', [Modules\Crm\Http\Controllers\ReportController::class, 'index']); Route::get('follow-ups-by-user', [Modules\Crm\Http\Controllers\ReportController::class, 'followUpsByUser']); Route::get('follow-ups-by-contact', [Modules\Crm\Http\Controllers\ReportController::class, 'followUpsContact']); Route::get('lead-to-customer-report', [Modules\Crm\Http\Controllers\ReportController::class, 'leadToCustomerConversion']); Route::get('lead-to-customer-details/{user_id}', [Modules\Crm\Http\Controllers\ReportController::class, 'showLeadToCustomerConversionDetails']); Route::get('call-log', [Modules\Crm\Http\Controllers\CallLogController::class, 'index']); Route::post('mass-delete-call-log', [Modules\Crm\Http\Controllers\CallLogController::class, 'massDestroy']); Route::get('phone-list-import', [Modules\Crm\Http\Controllers\PhoneListController::class, 'import']); Route::post('phone-list-import', [Modules\Crm\Http\Controllers\PhoneListController::class, 'postImport']); Route::get('phone-list-template', [Modules\Crm\Http\Controllers\PhoneListController::class, 'downloadTemplate']); Route::get('phone-list/{id}/follow-up', [Modules\Crm\Http\Controllers\PhoneListController::class, 'showFollowUpForm']); Route::post('phone-list/{id}/follow-up', [Modules\Crm\Http\Controllers\PhoneListController::class, 'storeFollowUp']); Route::get('phone-list/{id}/convert', [Modules\Crm\Http\Controllers\PhoneListController::class, 'showConvertForm']); Route::post('phone-list/{id}/convert', [Modules\Crm\Http\Controllers\PhoneListController::class, 'convertToLead']); Route::resource('phone-list', 'Modules\Crm\Http\Controllers\PhoneListController'); Route::get('edit-proposal-template', [Modules\Crm\Http\Controllers\ProposalTemplateController::class, 'getEdit']); Route::post('update-proposal-template', [Modules\Crm\Http\Controllers\ProposalTemplateController::class, 'postEdit']); Route::get('view-proposal-template', [Modules\Crm\Http\Controllers\ProposalTemplateController::class, 'getView']); Route::get('send-proposal', [Modules\Crm\Http\Controllers\ProposalTemplateController::class, 'send']); Route::delete('delete-proposal-media/{id}', [Modules\Crm\Http\Controllers\ProposalTemplateController::class, 'deleteProposalMedia']); Route::resource('proposal-template', 'Modules\Crm\Http\Controllers\ProposalTemplateController')->except(['show', 'edit', 'update', 'destroy']); Route::resource('proposals', 'Modules\Crm\Http\Controllers\ProposalController')->except(['create', 'edit', 'update', 'destroy']); Route::get('settings', [Modules\Crm\Http\Controllers\CrmSettingsController::class, 'index']); Route::post('update-settings', [Modules\Crm\Http\Controllers\CrmSettingsController::class, 'updateSettings']); Route::prefix('telemarketing')->name('telemarketing.')->group(function () { Route::get('workspace', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'index'])->name('workspace'); Route::get('workspace/stats', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'workspaceStats'])->name('workspace.stats'); Route::post('workspace/acquire-next', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'acquireNext'])->name('workspace.acquire'); Route::post('workspace/release', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'releaseQueue'])->name('workspace.release'); Route::post('workspace/start-session', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'startSession'])->name('workspace.start'); Route::get('workspace/data/{phone_id}', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'workspaceData'])->name('workspace.data'); Route::post('sessions/{session_id}/complete', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'completeSession'])->name('sessions.complete'); Route::get('workspace/offers/{company_id}', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'previewOffers'])->name('workspace.offers'); Route::post('offers/send', [Modules\Crm\Http\Controllers\CallWorkspaceController::class, 'sendOffers'])->name('offers.send'); Route::get('queue', [Modules\Crm\Http\Controllers\CallQueueController::class, 'index'])->name('queue.index'); Route::post('queue/sync', [Modules\Crm\Http\Controllers\CallQueueController::class, 'sync'])->name('queue.sync'); Route::get('dashboard', [Modules\Crm\Http\Controllers\TelemarketingDashboardController::class, 'index'])->name('dashboard'); Route::get('dashboard/stats', [Modules\Crm\Http\Controllers\TelemarketingDashboardController::class, 'stats'])->name('dashboard.stats'); Route::get('companies', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'index'])->name('companies.index'); Route::post('companies', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'store'])->name('companies.store'); Route::get('companies/{id}', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'show'])->name('companies.show'); Route::put('companies/{id}', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'update'])->name('companies.update'); Route::get('companies/{id}/completion', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'completion'])->name('companies.completion'); Route::post('companies/{id}/contacts', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'storeContact'])->name('companies.contacts'); Route::post('companies/{id}/branches', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'storeBranch'])->name('companies.branches'); Route::post('companies/{id}/phones', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'storePhone'])->name('companies.phones'); Route::post('companies/{id}/requirements', [Modules\Crm\Http\Controllers\CompanyProfileController::class, 'storeRequirement'])->name('companies.requirements'); Route::get('offers', [Modules\Crm\Http\Controllers\OfferCatalogController::class, 'index'])->name('offers.index'); Route::post('offers', [Modules\Crm\Http\Controllers\OfferCatalogController::class, 'store'])->name('offers.store'); Route::put('offers/{id}', [Modules\Crm\Http\Controllers\OfferCatalogController::class, 'update'])->name('offers.update'); Route::get('offers/company/{company_id}', [Modules\Crm\Http\Controllers\OfferCatalogController::class, 'companyOffers'])->name('offers.company'); Route::resource('scripts', Modules\Crm\Http\Controllers\CallScriptController::class)->except(['show', 'destroy']); Route::get('reports/call-quality', [Modules\Crm\Http\Controllers\TelemarketingReportController::class, 'callQuality'])->name('reports.call_quality'); Route::get('reports/funnel', [Modules\Crm\Http\Controllers\TelemarketingReportController::class, 'funnel'])->name('reports.funnel'); Route::get('reports/agent-performance', [Modules\Crm\Http\Controllers\TelemarketingReportController::class, 'agentPerformance'])->name('reports.agent_performance'); Route::get('reports/offer-conversion', [Modules\Crm\Http\Controllers\TelemarketingReportController::class, 'offerConversion'])->name('reports.offer_conversion'); }); Route::get('order-request', [Modules\Crm\Http\Controllers\OrderRequestController::class, 'listOrderRequests']); Route::get('b2b-marketplace', [Modules\Crm\Http\Controllers\CrmMarketplaceController::class, 'index']); Route::post('save-marketplace', [Modules\Crm\Http\Controllers\CrmMarketplaceController::class, 'save']); Route::get('import-leads', [Modules\Crm\Http\Controllers\CrmMarketplaceController::class, 'importLeads']); });