<?php

namespace {{ namespace }};

use {{ namespacedModel }};
use {{ rootNamespace }}Http\Controllers\Controller;
use {{ namespacedRequests }}

class {{ class }} extends Controller
{

    public function index()
    {
          $data =  {{ model }}::latest()->paginate();
                return  {{ model }}Resource::collection($data)->additional([
                    'message' => '',
                    'status' =>  'success'
                ]);
    }

    public function indexNotPaginated(Request $request)
    {
        $data =  {{ model }}::latest()->get();
        return  {{ model }}Resource::collection($data)->additional([
            'message' => '',
            'status' =>  'success'
        ]);
    }


    public function store( {{ model }}Request $request)
    {
         ${{ modelVariable }} =  {{ model }}::create(array_except($request->validated() , ['image']));
         return response()->json(['status' => 'success', 'data' => null, 'message' =>  trans('dashboard/admin.')]);
    }


    public function show($id)
    {
          ${{ modelVariable }} =  {{ model }}::findOrFail($id);
          return  {{ model }}Resource::make(${{ modelVariable }})->additional(['status' => 'success', 'message' => '']);
    }


    public function update(  {{ model }}Request $request, $id)
    {
        ${{ modelVariable }} =  {{ model }}::findOrFail($id);
        ${{ modelVariable }}->update(array_except($request->validated() , ['image']));
        return response()->json(['status' => 'success', 'data' => null, 'message' =>  trans('dashboard/admin.updated')]);
    }


    public function destroy( $id)
    {
            ${{ modelVariable }} =  {{ model }}::findOrFail($id);
            ${{ modelVariable }}->delete();
            return response()->json(['status' => 'success', 'data' => null, 'message' =>  trans('dashboard/admin.destroy')]);
    }
}
