<?php

namespace App\Http\Controllers\Admin;

use App\Article;
use App\Category;
use App\Charge;
use App\Condition;
use App\Contact;
use App\Customer;
use App\Project;
use App\Quote;
use App\Faq;
use App\Header;
use App\Http\Controllers\Controller;
use App\Keyword;
use App\Manufacturer;
use App\Order;
use App\Payment;
use App\Product;
use App\Report;
use App\Scene;
use App\Seo;
use App\Laravue\Models\User;
use Illuminate\Http\Request;
use App\Laravue\Acl;

class DashboardController extends Controller
{
    public function statistic()
    {
        $data = [];
        $user = auth('api')->user();

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_REPORT_MANAGE)) {
            $reportList = Report::where('is_deleted', false);
            $data['report'] = ['total' => $reportList->count()];
        }

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_QUOTE_MANAGE)) {
            $quoteList = Quote::where('is_deleted', false);
            $data['quote'] = ['total' => $quoteList->count()];
        }

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_SITE_MANAGE)) {
            $siteList = Quote::where('is_deleted', false);
            $data['site'] = ['total' => $siteList->count()];
        }

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_PROJECT_MANAGE)) {
            $projectList = Project::where('is_deleted', false);
            $data['project'] = ['total' => $projectList->count()];
        }

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_CUSTOMER_MANAGE)) {
            $customerList = Customer::where('is_deleted', false);
            $data['customer'] = ['total' => $customerList->count()];
        }

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_CHARGE_MANAGE)) {
            $chargeList = Charge::where('is_deleted', false);
            $data['charge'] = ['total' => $chargeList->count()];
        }

        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_USER_MANAGE)) {
            $totalUser = User::whereHas('roles', function ($q) {
                $q->where('name', 'user');
            })->count();
            $data['user'] = ['total' => $totalUser];
        }

        /*if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_KEYWORD_MANAGE)) {
            $totalKeyword = Keyword::where('is_deleted', false)->count();
            $data['keyword'] = ['total' => $totalKeyword];
        }*/

        return response()->json(['data' => $data], 200);
    }
}
