<?php

/**
 * 파일 관리 API 라우트 (v1)
 *
 * - 파일 업로드/다운로드
 * - 폴더 관리
 * - 저장소 사용량
 * - 공유 링크
 */

use App\Http\Controllers\Api\V1\FileStorageController;
use App\Http\Controllers\Api\V1\FolderController;
use Illuminate\Support\Facades\Route;

// 파일 저장소 API
Route::prefix('files')->group(function () {
    Route::post('/upload', [FileStorageController::class, 'upload'])->name('v1.files.upload');                           // 파일 업로드 (임시)
    Route::post('/move', [FileStorageController::class, 'move'])->name('v1.files.move');                                 // 파일 이동 (temp → folder)
    Route::get('/', [FileStorageController::class, 'index'])->name('v1.files.index');                                    // 파일 목록
    Route::get('/trash', [FileStorageController::class, 'trash'])->name('v1.files.trash');                               // 휴지통 목록
    Route::get('/{id}', [FileStorageController::class, 'show'])->name('v1.files.show');                                  // 파일 상세
    Route::get('/{id}/download', [FileStorageController::class, 'download'])->name('v1.files.download');                // 파일 다운로드
    Route::delete('/{id}', [FileStorageController::class, 'destroy'])->name('v1.files.destroy');                        // 파일 삭제 (soft)
    Route::post('/{id}/restore', [FileStorageController::class, 'restore'])->name('v1.files.restore');                  // 파일 복구
    Route::delete('/{id}/permanent', [FileStorageController::class, 'permanentDelete'])->name('v1.files.permanent');    // 파일 영구 삭제
    Route::post('/{id}/share', [FileStorageController::class, 'createShareLink'])->name('v1.files.share');              // 공유 링크 생성
});

// 저장소 사용량
Route::get('/storage/usage', [FileStorageController::class, 'storageUsage'])->name('v1.storage.usage');

// 폴더 관리 API
Route::prefix('folders')->group(function () {
    Route::get('/', [FolderController::class, 'index'])->name('v1.folders.index');                                       // 폴더 목록
    Route::post('/', [FolderController::class, 'store'])->name('v1.folders.store');                                      // 폴더 생성
    Route::get('/{id}', [FolderController::class, 'show'])->name('v1.folders.show');                                     // 폴더 상세
    Route::put('/{id}', [FolderController::class, 'update'])->name('v1.folders.update');                                 // 폴더 수정
    Route::delete('/{id}', [FolderController::class, 'destroy'])->name('v1.folders.destroy');                            // 폴더 삭제/비활성화
    Route::post('/reorder', [FolderController::class, 'reorder'])->name('v1.folders.reorder');                           // 폴더 순서 변경
});

// 공유 링크 다운로드 (인증 불필요 - 메인 api.php에서 v1 그룹 밖으로 분리)
// Route::get('/files/share/{token}', [FileStorageController::class, 'downloadShared'])->name('v1.files.share.download');
