<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Support\Facades\Route;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
        then: function (): void {
            Route::middleware('web')->group(base_path('routes/admin_fit.php'));
            Route::middleware('web')->group(base_path('routes/user_fit.php'));
            Route::middleware('web')->group(base_path('routes/proceso_fit.php'));
            Route::middleware('web')->group(base_path('routes/external_fit.php'));
            Route::middleware('api')->prefix('api')->group(base_path('routes/mobile_api.php'));
        },
    )
    ->withMiddleware(function (Middleware $middleware): void {
            $middleware->alias([
                'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
                'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
                'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
                'company.info' => \App\Http\Middleware\CompanyInfoMiddleware::class,
                'rate.update' => \App\Http\Middleware\rateUpdate::class,
                'cron.token' => \App\Http\Middleware\CronTokenMiddleware::class,
                'jwt.auth' => \App\Http\Middleware\JwtAuthMiddleware::class,
            ]);
    })
    
    ->withExceptions(function (Exceptions $exceptions): void {
        //
    })->create();
