<?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',
        api: __DIR__.'/../routes/api.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
        then: function () {
            // api.farmpilot.io — same endpoints, no /api prefix.
            if ($api = config('farmpilot.domains.api')) {
                Route::domain($api)
                    ->middleware('api')
                    ->group(base_path('routes/api.php'));
            }

            // app.farmpilot.io — the tenant portal shell.
            if ($app = config('farmpilot.domains.app')) {
                Route::domain($app)
                    ->middleware('web')
                    ->group(base_path('routes/app.php'));
            } else {
                Route::middleware('web')
                    ->prefix('app')
                    ->group(base_path('routes/app.php'));
            }
        },
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->validateCsrfTokens(except: [
            'stripe/*',
        ]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();
