<?php

namespace App\PackagesAdmin\Manager\Controllers;

use App\Http\Controllers\Controller;
use App\PackagesAdmin\Manager\DataTables\ManagerDataTable;
use App\PackagesAdmin\Manager\Models\Manager;
use App\PackagesAdmin\Manager\Requests\ManagerRequest;
use App\PackagesAdmin\Manager\Services\ManagerService;
use Illuminate\Http\Request;

class ManagerController extends Controller
{

    public function index(Request $request, ManagerDataTable $dataTable)
    {
        if ( $request->ajax() ) {
            return $dataTable->getDataTable();
        }

        return view('admin.manager.list');
    }

    public function create()
    {
        return view('admin.manager.form');
    }

    public function store(ManagerRequest $request)
    {
        ManagerService::createManager($request);

        return response()->redirectToRoute('admin.manager.list')
            ->with('status', 'success');
    }

    public function edit($manager_id)
    {
        /** @var Manager */
        $manager = Manager::query()->find($manager_id);

        return view('admin.manager.form', [
            'manager' => $manager
        ]);
    }

    public function update(ManagerRequest $request, $manager_id)
    {
        ManagerService::updateManager($request, $manager_id);

        return back()->with('status', 'success');
    }

    public function destroy($manager_id)
    {
        ManagerService::destroyManager($manager_id);

        return response()->json([
            'status' => 'success'
        ]);
    }

}
