<?php
namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Category;
use Illuminate\Http\Request;
use Illuminate\Support\Str;

class CategoryController extends Controller
{
    // ক্যাটাগরি লিস্ট দেখাবে
    public function index() {
        $categories = Category::latest()->get();
        return view('admin.categories.index', compact('categories'));
    }

    // নতুন ক্যাটাগরি অ্যাড করার ফর্ম
    public function create() {
        return view('admin.categories.create');
    }

    // ডাটা সেভ করবে
    public function store(Request $request) {
        $request->validate([
            'name' => 'required',
            'image' => 'required|image|mimes:jpeg,png,jpg|max:2048',
        ]);

        $category = new Category();
        $category->name = $request->name;
        
        // নাম থেকে slug তৈরি করবে (যেমন: BR Match -> br-match)
        $slug = Str::slug($request->name);
        // যদি একই নামের ক্যাটাগরি থাকে, তবে slug এর সাথে সংখ্যা যোগ করবে
        $count = Category::where('slug', 'LIKE', "{$slug}%")->count();
        $category->slug = $count ? "{$slug}-{$count}" : $slug;

        if ($request->hasFile('image')) {
            $imageName = time().'.'.$request->image->extension();  
            $request->image->move(public_path('assets/images/categories'), $imageName);
            $category->image = 'assets/images/categories/'.$imageName;
        }

        $category->save();
        return redirect()->route('admin.categories.index')->with('success', 'Category Added Successfully!');
    }

    // ক্যাটাগরি ডিলিট করবে
    public function destroy($id) {
        $category = Category::findOrFail($id);
        if(file_exists(public_path($category->image))){
            unlink(public_path($category->image)); // ছবিও ডিলিট করে দিবে
        }
        $category->delete();
        return back()->with('success', 'Category Deleted Successfully!');
    }
}