<?php

namespace App\Http\Controllers\Panel\Categories;
use App\Models\Category;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;


class CategoryController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
     $categories=Category::orderBy('id','DESC')->paginate(20);
     return view('panel.categories.index',compact('categories'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('panel.categories.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $validatedData= $request->validate([
            'title' => 'required|max:100',
            'parent' => 'required',
            'category_type' => 'required',
            'discription' => 'required',



        ],[
            'title.required' => 'فیلد عنوان الزامی می باشد.',
            'parent.required' => 'فیلد وضعیت الزامی می باشد.',
            'discription.required' => 'فیلد توضیحات الزامی می باشد.',
            'category_type.required' => 'فیلد نوع دسته بندی الزامی می باشد.',

        ]);
        $data = array_merge($request->all(),['creator_id' => auth()->user()->id]);
//
        $category = Category::create($data);


        $msg = 'ذخیره محصول با موفقیت انجام شد ';
        return redirect(route('categories.edit', $category->id))->with('success', $msg);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit(Category $category)
    {
        return view('panel.categories.edit', compact('category'));

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Category $category)
    {
        $validatedData= $request->validate([
            'title' => 'required|max:100',
            'parent' => 'required',
            'category_type' => 'required',
            'discription' => 'required',



        ],[
            'title.required' => 'فیلد عنوان الزامی می باشد.',
            'parent.required' => 'فیلد وضعیت الزامی می باشد.',
            'discription.required' => 'فیلد توضیحات الزامی می باشد.',
            'category_type.required' => 'فیلد نوع دسته بندی الزامی می باشد.',

        ]);
        $data = array_merge($request->all(),['creator_id'=>auth()->user()->id]);
        $category->update($data);


        $msg = 'ویرایش محصول با موفقیت انجام شد ';
        return redirect(route('categories.index'))->with('success', $msg);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy(Category $category)
    {
        $category->delete();
        {
            return back();
        }
    }
}
