<?php

namespace App\Http\Controllers\Admin;

use App\Article;
use App\Category;
use App\Contact;
use App\Counseling;
use App\Faq;
use App\Header;
use App\Http\Controllers\Controller;
use App\Keyword;
use App\Photo;
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_CATEGORY_MANAGE)) {
            $totalCategory = Category::where('is_deleted', false);
            $data['category'] = ['total' => $totalCategory->count()];
        }
        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_FAQ_MANAGE)) {
            $totalFaq = Photo::all();
            $data['faq'] = ['total' => $totalFaq->count()];
        }
        if ($user->hasRole(['admin', 'manager']) || $user->can(Acl::PERMISSION_DASHBOARD_CUSTOMER_MANAGE)) {
            $totalCustomer = User::whereHas('roles', function ($q) {
                $q->where('name', 'customer');
            })->count();
            $data['customer'] = ['total' => $totalCustomer];
        }
        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];
        }

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