<?php

use App\Http\Controllers\Api\AccreditationController;
use App\Http\Controllers\Api\Auth\AuthenticatedTokenController;
use App\Http\Controllers\Api\TokenController;
use App\Http\Controllers\Api\TrainingController;
use App\Http\Resources\Api\AuthResource;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::name('api.')->group(function () {
    Route::middleware(['auth:sanctum'])->group(function () {
        Route::get('/user', function (Request $request) {
            // return $request->user()->load('profile');
            return new AuthResource(
                (object) [
                    'token' => '',
                    'user' => $request->user()->load('profile'),
                ]
            );
        });

        Route::patch('/user/training', [TrainingController::class, 'update'])->name('user.training.update');

        Route::post('/user/accreditation', [AccreditationController::class, 'store'])->name('user.accreditation.store');

        Route::get('/user/tokens', [TokenController::class, 'index']);
        Route::post('/user/tokens', [TokenController::class, 'store']);

        Route::post('/logout', [AuthenticatedTokenController::class, 'destroy']);
    });

    Route::withoutMiddleware(['auth:sanctum'])->group(function () {
        Route::post('/login', [AuthenticatedTokenController::class, 'store']);
    });
});
