<?php

namespace App\Http\Controllers;

use App\Models\Pembelajaran;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;

class PembelajaranController extends Controller
{
    public function index(Request $request)
    {
        // Ambil semua pembelajaran yang dibuat oleh user yang sedang login
        $pembelajarans = Pembelajaran::where('user_id', Auth::id())->get();
    
        // Ambil daftar user untuk form tambah pembelajaran
        $users = \App\Models\User::all();
        $users = \App\Models\User::with('student')->get();
    
        return view('admin.pembelajaran.index', compact('pembelajarans', 'users'));
    }
    
    public function store(Request $request)
    {
        $request->validate([
            'judul' => 'required|string|max:255',
            'deskripsi' => 'required|string',
            'video' => 'nullable|file|mimes:mp4,mov,avi|max:20480',
            'audio' => 'nullable|file|mimes:mp3,wav|max:10240',
            'bacaan' => 'nullable|string',
            'user_ids' => 'required|array',
            'user_ids.*' => 'exists:users,id',
        ]);
    
        // Handle file video
        $namaVideo = null;
        if ($request->hasFile('video')) {
            if (!file_exists(public_path('video'))) {
                mkdir(public_path('video'), 0777, true);
            }
            $namaVideo = time() . '_' . $request->file('video')->getClientOriginalName();
            $request->file('video')->move(public_path('video'), $namaVideo);
        }
    
        // Handle file audio jika ada
        $namaAudio = null;
        if ($request->hasFile('audio')) {
            if (!file_exists(public_path('audio'))) {
                mkdir(public_path('audio'), 0777, true);
            }
            $namaAudio = time() . '_' . $request->file('audio')->getClientOriginalName();
            $request->file('audio')->move(public_path('audio'), $namaAudio);
        }
    
        // Simpan pembelajaran
        $pembelajaran = Pembelajaran::create([
            'user_id' => Auth::id(),
            'judul' => $request->judul,
            'deskripsi' => $request->deskripsi,
            'video' => $namaVideo,
            'audio' => $namaAudio,
            'bacaan' => $request->bacaan,
        ]);
    
        // Attach ke pivot table pembelajaran_user
        $pembelajaran->users()->attach($request->user_ids);
    
        return redirect()->back()->with('success', 'Pembelajaran berhasil disimpan dan dikirim ke murid!');
    }    
    
    public function destroy(Pembelajaran $pembelajaran)
    {
        // Pastikan hanya pemilik pembelajaran yang dapat menghapus
        if ($pembelajaran->user_id !== Auth::id()) {
            return redirect()->route('pembelajaran.index')->with('error', 'Anda tidak memiliki izin untuk menghapus pembelajaran ini.');
        }

        $pembelajaran->delete();

        return redirect()->route('pembelajaran.index')->with('success', 'Pembelajaran berhasil dihapus.');
    }
}