| 1 |
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?> |
| 2 |
<?php |
| 3 |
|
| 4 |
use FluentCart\Framework\Http\Router; |
| 5 |
use FluentCart\App\Http\Controllers\Reports\ReportingController; |
| 6 |
use FluentCart\App\Http\Controllers\Reports\OrderReportController; |
| 7 |
use FluentCart\App\Http\Controllers\Reports\SourceReportController; |
| 8 |
use FluentCart\App\Http\Controllers\Reports\RefundReportController; |
| 9 |
use FluentCart\App\Http\Controllers\Reports\DefaultReportController; |
| 10 |
use FluentCart\App\Http\Controllers\Reports\LicenseReportController; |
| 11 |
use FluentCart\App\Http\Controllers\Reports\ProductReportController; |
| 12 |
use FluentCart\App\Http\Controllers\Reports\RevenueReportController; |
| 13 |
use FluentCart\App\Http\Controllers\Reports\CustomerReportController; |
| 14 |
use FluentCart\App\Http\Controllers\Reports\OverviewReportController; |
| 15 |
use FluentCart\App\Http\Controllers\Reports\SubscriptionReportController; |
| 16 |
use FluentCart\App\Http\Controllers\Reports\RetentionSnapshotController; |
| 17 |
|
| 18 |
/** |
| 19 |
* @var $router Router |
| 20 |
*/ |
| 21 |
|
| 22 |
$router->prefix('reports') |
| 23 |
->withPolicy('ReportPolicy') |
| 24 |
->group(function (Router $router) { |
| 25 |
|
| 26 |
// Overview |
| 27 |
$router->get('overview', [OverviewReportController::class, 'getOverview']); |
| 28 |
|
| 29 |
// Default |
| 30 |
$router->get('fetch-report-meta', [ReportingController::class, 'getReportMeta']); |
| 31 |
$router->get('quick-order-stats', [ReportingController::class, 'getOrderQuickStats']); |
| 32 |
$router->get('report-overview', [ReportingController::class, 'getReportOverview']); |
| 33 |
$router->get('search-repeat-customer', [ReportingController::class, 'searchRepeatCustomer']); |
| 34 |
$router->get('top-products-sold', [ReportingController::class, 'getTopProductsSold']); //Using Resource Api |
| 35 |
|
| 36 |
//Revenue |
| 37 |
$router->get('revenue', [RevenueReportController::class, 'getRevenue']); //d |
| 38 |
$router->get('revenue-by-group', [RevenueReportController::class, 'getRevenueByGroup']); //d |
| 39 |
|
| 40 |
// Order |
| 41 |
$router->get('order-value-distribution', [OrderReportController::class, 'getOrderValueDistribution']); |
| 42 |
$router->get('fetch-new-vs-returning-customer', [OrderReportController::class, 'getNewVsReturningCustomer']); //d |
| 43 |
$router->get('fetch-order-by-group', [OrderReportController::class, 'getOrderByGroup']); //d |
| 44 |
$router->get('fetch-report-by-day-and-hour', [OrderReportController::class, 'getReportByDayAndHour']); //d |
| 45 |
$router->get('item-count-distribution', [OrderReportController::class, 'getItemCountDistribution']); //d |
| 46 |
$router->get('order-completion-time', [OrderReportController::class, 'getOrderCompletionTime']); //d |
| 47 |
$router->get('order-chart', [OrderReportController::class, 'getOrderChart']); //d |
| 48 |
|
| 49 |
//Default |
| 50 |
$router->get('sales-report', [DefaultReportController::class, 'getSalesReport']); //d |
| 51 |
|
| 52 |
$router->get('fetch-top-sold-products', [DefaultReportController::class, 'getTopSoldProducts']); //d |
| 53 |
$router->get('fetch-top-sold-variants', [DefaultReportController::class, 'getTopSoldVariants']); //d |
| 54 |
|
| 55 |
// The routes below are commented out because their controller methods have not been implemented yet |
| 56 |
// in DefaultReportController. The corresponding Vue calls in DefaultReport.vue are also commented out. |
| 57 |
// Uncomment both when the methods are implemented. |
| 58 |
// $router->get('fetch-default-report', [DefaultReportController::class, 'getDefaultReport']); |
| 59 |
// $router->get('fetch-failed-orders', [DefaultReportController::class, 'getFailedOrders']); |
| 60 |
// $router->get('fetch-default-report-graphs', [DefaultReportController::class, 'getDefaultReportGraphs']); |
| 61 |
// $router->get('fetch-default-report-fluctuations', [DefaultReportController::class, 'getDefaultReportFluctuations']); |
| 62 |
// $router->get('fetch-frequently-bought-together', [DefaultReportController::class, 'getFrequentlyBoughtTogether']); |
| 63 |
|
| 64 |
//Refund |
| 65 |
$router->get('refund-chart', [RefundReportController::class, 'getRefundChart']); //d |
| 66 |
$router->get('weeks-between-refund', [RefundReportController::class, 'getWeeksBetweenRefund']); //(d) |
| 67 |
$router->get('refund-data-by-group', [RefundReportController::class, 'getRefundDataByGroup']); //(d) |
| 68 |
|
| 69 |
//License |
| 70 |
$router->get('license-chart', [LicenseReportController::class, 'getLicenseLineChart']); |
| 71 |
$router->get('license-pie-chart', [LicenseReportController::class, 'getLicensePieChart']); |
| 72 |
$router->get('license-summary', [LicenseReportController::class, 'getLicenseSummary']); |
| 73 |
|
| 74 |
//Dashboard |
| 75 |
$router->get('dashboard-stats', [ReportingController::class, 'getDashboardStats']); |
| 76 |
$router->get('sales-growth-chart', [ReportingController::class, 'getSalesGrowthChart']); |
| 77 |
$router->get('country-heat-map', [ReportingController::class, 'getCountryHeatMap']); |
| 78 |
$router->get('get-recent-orders', [ReportingController::class, 'getRecentOrders']); |
| 79 |
$router->get('get-recent-activities', [ReportingController::class, 'getRecentActivities']); |
| 80 |
$router->get('get-dashboard-summary', [ReportingController::class, 'getDashBoardSummary']); |
| 81 |
//Subscription |
| 82 |
$router->get('subscription-chart', [SubscriptionReportController::class, 'getSubscriptionChart']); //d |
| 83 |
$router->get('daily-signups', [SubscriptionReportController::class, 'getDailySignups']); //d |
| 84 |
$router->get('retention-chart', [SubscriptionReportController::class, 'getRetentionChart']); //d |
| 85 |
$router->get('future-renewals', [SubscriptionReportController::class, 'getFutureRenewals']); //d |
| 86 |
$router->get('subscription-retention', [SubscriptionReportController::class, 'getRetentionData']); |
| 87 |
$router->get('subscription-cohorts', [SubscriptionReportController::class, 'getCohortData']); |
| 88 |
$router->post('retention-snapshots/generate', [RetentionSnapshotController::class, 'generate']); |
| 89 |
$router->get('retention-snapshots/status', [RetentionSnapshotController::class, 'checkStatus']); |
| 90 |
|
| 91 |
//Product (y) |
| 92 |
$router->get('product-report', [ProductReportController::class, 'getProductReport']); //d |
| 93 |
$router->get('product-performance', [ProductReportController::class, 'getProductPerformance']); //d |
| 94 |
|
| 95 |
//Customer |
| 96 |
$router->get('customer-report', [CustomerReportController::class, 'index']); //d |
| 97 |
|
| 98 |
//Source Report |
| 99 |
$router->get('sources', [SourceReportController::class, 'index']); |
| 100 |
}); |
| 101 |
|