user(); })->middleware('auth:sanctum'); // Letter Management Routes Route::apiResource('letters', LetterController::class); // File Attachment Routes Route::get('/lampiran/{id}', [LetterController::class, 'letterLampiran']) ->name('letters.lampiran'); // Template Management Routes Route::apiResource('completion_templates', CompletionTemplateController::class); Route::apiResource('acceptance_templates', AcceptanceTemplateController::class); // Letter Type Routes Route::apiResource('acceptance_letters', AcceptanceLetterController::class); Route::apiResource('completion_letters', CompletionLetterController::class); // File Viewer Route (Internal use for signed URLs) Route::get('/file/{id}', [FileViewController::class, 'show']) ->name('file.view') ->middleware('signed'); /** * API Endpoints Documentation: * * GET /api/user - Get authenticated user * * Letters: * GET /api/letters - List all letters * POST /api/letters - Create new letter * GET /api/letters/{id} - Get letter details * PUT /api/letters/{id} - Update letter * DELETE /api/letters/{id} - Delete letter * GET /api/letters/lampiran/{id} - Get file attachment URL * * Templates: * GET /api/completion_templates - List completion templates * GET /api/acceptance_templates - List acceptance templates * * Letter Types: * GET /api/acceptance_letters - List acceptance letters * GET /api/completion_letters - List completion letters * * File Handling: * GET /api/file/{id} - View file (internal, signed URL) */