<?php

use App\Http\Controllers\Public\CoachController;
use Illuminate\Support\Facades\Route;

require __DIR__.'/auth.php';
require __DIR__.'/admin.php';
require __DIR__.'/coach.php';
require __DIR__.'/athlete.php';
require __DIR__.'/chat.php';
require __DIR__.'/notifications.php';
require __DIR__.'/heartbeat.php';
Route::get('/captcha', function () {
    return response(captcha_img(), 200, ['Content-Type' => 'image/png']);
})->name('captcha');
Route::get('/', function () {
    if (auth()->check()) {
        $user = auth()->user();

        return match (true) {
            $user->isAdmin() => redirect()->route('admin.dashboard'),
            $user->isCoach() => redirect()->route('coach.dashboard'),
            $user->isAthlete() => redirect()->route('athlete.dashboard'),
            default => redirect()->route('login'),
        };
    }

    // مهمان — لیست عمومی مربیان به‌عنوان صفحه‌ی اصلی (بند ۶، بدون نیاز به ورود)
    return redirect()->route('coaches.index');
})->name('home');

/*
|--------------------------------------------------------------------------
| صفحه‌ی «در انتظار تأیید» مربی — بند اصلی احراز هویت، بیرون از role middleware
| اضافی چون فقط با role:coach کافی است (Phase 1/3):
|--------------------------------------------------------------------------
*/
Route::middleware(['auth', 'active.account', 'role:coach'])
    ->get('/coach/pending', fn () => view('coach.pending'))
    ->name('coach.pending');

/*
|--------------------------------------------------------------------------
| Dashboard مربی/ورزشکار — رفع باگ نهایی: در فازهای قبل این دو route فقط
| Placeholder بودند و هیچ‌وقت به صفحه‌ی واقعی وصل نشدند. الان به معنادارترین
| صفحه‌ی موجود Redirect می‌شوند (مربی → درخواست‌های همکاری، ورزشکار → پیشرفت من).
|--------------------------------------------------------------------------
*/
Route::middleware(['auth', 'active.account', 'role:coach', 'coach.approved'])
    ->get('/coach/dashboard', fn () => redirect()->route('coach.requests.index'))
    ->name('coach.dashboard');

Route::middleware(['auth', 'active.account', 'role:athlete'])
    ->get('/athlete/dashboard', fn () => redirect()->route('athlete.progress.index'))
    ->name('athlete.dashboard');

/*
|--------------------------------------------------------------------------
| لیست/پروفایل عمومی مربیان (Phase 3) — بدون نیاز به لاگین، فقط approved
| مربی‌ها از طریق CoachPolicy واقعاً قابل مشاهده‌اند:
|--------------------------------------------------------------------------
*/
Route::get('/coaches', [CoachController::class, 'index'])->name('coaches.index');
Route::get('/coaches/{coach}', [CoachController::class, 'show'])->name('coaches.show');
