<?php

use App\Http\Controllers\ProfileController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\GradeController;
use App\Http\Controllers\GradeSubjectController;
use App\Http\Controllers\GradeTeacherController;
use App\Http\Controllers\LessonController;
use App\Http\Controllers\ScoreController;
use App\Http\Controllers\StudentController;
use App\Http\Controllers\SubjectController;
use App\Http\Controllers\SubjectTeacherController;
use App\Http\Controllers\TeacherController;

Route::get('/', function () {
    return redirect()->route('profile.edit');
});

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');

Route::middleware('auth')->group(function () {
    Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
    Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
    Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');

    Route::resources([
        'grades' => GradeController::class,
        'subjects' => SubjectController::class,
        'students' => StudentController::class,
        'teachers' => TeacherController::class,
        'grades.lessons' => LessonController::class,
    ]);

    Route::resource('teachers.subjects', SubjectTeacherController::class)->except('index');
    Route::resource('teachers.subjects.grades', GradeTeacherController::class)->except('index', 'show');
    Route::resource('grades.subjects', GradeSubjectController::class)->except('index', 'show');
    Route::get('lessons/{lesson}/scores', [ScoreController::class, 'show'])->name('lessons.scores.show');
    Route::put('lessons/{lesson}/scores', [ScoreController::class, 'update'])->name('lessons.scores.update');

});

require __DIR__.'/auth.php';