<?php

namespace App\Http\Controllers;

use App\Models\Teacher;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class TeacherController extends Controller
{
    // ১. টিচার লিস্ট দেখানো
    public function index() {
        $teachers = Teacher::latest()->get();
        return view('admin.teachers.index', compact('teachers'));
    }

    // ২. নতুন টিচার সেভ করা
    public function store(Request $request) {
        $data = $request->all();
        
        if ($request->hasFile('photo')) {
            $data['photo'] = $request->file('photo')->store('teachers', 'public');
        }

        Teacher::create($data);
        return response()->json(['message' => 'শিক্ষক সফলভাবে যুক্ত করা হয়েছে!']);
    }

    // ৩. এডিটের জন্য ডাটা ফেচ করা
    public function edit($id) {
        $teacher = Teacher::find($id);
        if (!$teacher) {
            return response()->json(['message' => 'শিক্ষক খুঁজে পাওয়া যায়নি'], 404);
        }
        return response()->json($teacher);
    }

    // ৪. ডাটা আপডেট করা
    public function update(Request $request) {
        $teacher = Teacher::findOrFail($request->teacher_id);
        $data = $request->all();

        if ($request->hasFile('photo')) {
            // পুরনো ছবি ডিলিট করা
            if ($teacher->photo) {
                Storage::disk('public')->delete($teacher->photo);
            }
            $data['photo'] = $request->file('photo')->store('teachers', 'public');
        }

        $teacher->update($data);
        return response()->json(['message' => 'তথ্য সফলভাবে আপডেট করা হয়েছে!']);
    }

    // ৫. টিচার ডিলিট করা
    public function destroy($id) {
        $teacher = Teacher::findOrFail($id);
        
        if ($teacher->photo) {
            Storage::disk('public')->delete($teacher->photo);
        }
        
        $teacher->delete();
        return response()->json(['message' => 'শিক্ষকের তথ্য মুছে ফেলা হয়েছে!']);
    }
}