<?php

namespace App\Http\Controllers\Siswa;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Models\Mengajar;
use App\Models\Materi;

class MateriController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:siswa');
    }

    /**
     * Halaman daftar mata pelajaran siswa
     */
    public function index()
    {
        $siswa = Auth::guard('siswa')->user();

        // Ambil semua mapel yang diajarkan di kelas siswa ini
        $mapelList = Mengajar::with(['mapel', 'guru'])
            ->where('id_kelas', $siswa->id_kelas)
            ->get()
            ->map(function ($mengajar) {
                return [
                    'id_mengajar' => $mengajar->id_mengajar,
                    'nama_mapel'  => optional($mengajar->mapel)->nama_mapel ?? '-',
                    'nama_guru'   => optional($mengajar->guru)->nama ?? '-',
                    'jumlah_materi' => Materi::where('id_mengajar', $mengajar->id_mengajar)->count(),
                ];
            });

        return view('siswa.materi.index', compact('mapelList'));
    }

    /**
     * Halaman daftar materi per mata pelajaran
     */
    public function show($id_mengajar)
    {
        $siswa = Auth::guard('siswa')->user();

        // Pastikan mengajar ini memang untuk kelas siswa
        $mengajar = Mengajar::with(['mapel', 'guru'])
            ->where('id_mengajar', $id_mengajar)
            ->where('id_kelas', $siswa->id_kelas)
            ->firstOrFail();

        $materiList = Materi::where('id_mengajar', $id_mengajar)
            ->orderBy('tanggal_upload', 'desc')
            ->get();

        return view('siswa.materi.show', compact('mengajar', 'materiList'));
    }
}