<?php
namespace Onestartup\Product\Controller;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Onestartup\Product\Model\ProductCategory as Category;
use Onestartup\Product\Model\ProductSubCategory as SubCategory;

use Onestartup\Product\Requests\RequestSubCategory;

class SubCategoryController extends Controller{ 

	public function index(Request $request, $category_id){
		$category = Category::find($category_id);
        if($request->ajax()){
            return $subcategories = $category->subcategories()->get();
        }
		$subcategories = $category->subcategories()->paginate(30);

		return view("product::subcategory.index")
			->with("subcategories", $subcategories)
			->with("category", $category);
	}

	public function edit($category_id, $id){
		$category = Category::find($category_id);
		$subcategory = SubCategory::where("category_id", $category_id)->find($id);

		return view("product::subcategory.edit")
			->with("subcategory", $subcategory)
			->with("category", $category);
	}

	public function store(RequestSubCategory $request, $category_id){

		$subcategory = new SubCategory($request->all());
		$subcategory->category_id = $category_id;
		$subcategory->save();
        if (isset($request->portada)) {
            
            $file = $request->file('portada');
            $nombre = $file->getClientOriginalName();
            $nombre_file = str_replace(' ', '_', $nombre);
            $ubicacion_donde_guarda ='product/subcategories/' . $subcategory->id . '/' .$nombre_file;
            \Storage::disk('local')->put($ubicacion_donde_guarda,  \File::get($file));
            $subcategory->cover = $ubicacion_donde_guarda;
            $subcategory->save();
        } 

        return redirect()
            ->back()
            ->with('message_success', 'Subcategoría añadida correctamente.');

	}

	public function update(RequestSubCategory $request, $category_id, $id){

		$subcategory = SubCategory::where("category_id", $category_id)->find($id);
        $subcategory->fill($request->all());
		$subcategory->save();
        
        if (isset($request->portada) && $request->portada != null ) {
            
            $file = $request->file('portada');
            $nombre = $file->getClientOriginalName();
            $nombre_file = str_replace(' ', '_', $nombre);
            $ubicacion_donde_guarda ='product/subcategories/'. $subcategory->id . '/'. $nombre_file;
            \Storage::disk('local')->put($ubicacion_donde_guarda,  \File::get($file));
            $subcategory->cover = $ubicacion_donde_guarda;
            $subcategory->save();
            
        }
        return redirect()
            ->back()
            ->with('message_success', 'Subcategoría actualizada correctamente.');

	}

	public function destroy($category_id, $id){
		$subcategory = SubCategory::where("category_id", $category_id)->find($id);
        $subcategory->delete();

        return redirect()
            ->back()
            ->with('message_danger', 'Subcategoría eliminada correctamente.');
	}

	public function deleteCover($id)
    {
        $category = SubCategory::find($id);
        $category->cover = null;
        $category->save();

        return redirect()
                ->back()
                ->with('message_success', 'Imagen eliminada correctamente.');
    }
}