<?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 \Shared\Tpl\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(),
        ] );
    }
}
