<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Controllers\Traits\ValidationTrait;
use App\Http\Requests\Api\BannerFilterRequest;
use App\Http\Resources\Banner as BannerResource;
use App\Banner;
use App\Repository\BannerRepository;
use function GuzzleHttp\Promise\all;

class BannerController extends Controller
{
    use ValidationTrait;

    /**
     * @var BannerRepository
     */
    public $bannerRepository;

    public function __construct(
        BannerRepository $bannerRepository
    ) {
        $this->bannerRepository = $bannerRepository;
    }

    public function show(BannerFilterRequest $request)
    {
        $parameters = $request->all();

        $banner = $this->bannerRepository->index($parameters);

        return [
            'data' => $banner ? new BannerResource($banner) : null,
            'count' => Banner::all()->count()
        ];
    }
}
