- ShopProduct factory: full migration (~40 ProductRepository methods, ~30 controller actions) - Dashboard: Domain+DI migration (DashboardRepository + DashboardController) - Update: Domain+DI migration (UpdateRepository + UpdateController, template rewrite) - Renamed admin\Site to admin\App, removed dead fallback routing - Removed all legacy folders: admin/controls, admin/factory, admin/view - Newsletter: switched from admin\factory\Articles to ArticleRepository - 414 tests, 1335 assertions passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 lines
1.2 KiB
PHP
32 lines
1.2 KiB
PHP
<?php
|
|
namespace admin\Controllers;
|
|
|
|
use Domain\Dashboard\DashboardRepository;
|
|
use Domain\ShopStatus\ShopStatusRepository;
|
|
|
|
class DashboardController
|
|
{
|
|
private DashboardRepository $repository;
|
|
private ShopStatusRepository $statusesRepository;
|
|
|
|
public function __construct( DashboardRepository $repository, ShopStatusRepository $statusesRepository )
|
|
{
|
|
$this->repository = $repository;
|
|
$this->statusesRepository = $statusesRepository;
|
|
}
|
|
|
|
public function main_view(): string
|
|
{
|
|
return \Tpl::view( 'dashboard/main-view', [
|
|
'last_orders' => $this->repository->lastOrders(),
|
|
'order_statuses' => $this->statusesRepository->allStatuses(),
|
|
'sales' => $this->repository->last24MonthsSales(),
|
|
'best_sales_products' => $this->repository->bestSalesProducts(),
|
|
'most_view_products' => $this->repository->mostViewedProducts(),
|
|
'sales_grid' => $this->repository->salesGrid(),
|
|
'summary_sales' => $this->repository->summarySales(),
|
|
'summary_orders' => $this->repository->summaryOrders(),
|
|
] );
|
|
}
|
|
}
|