user(); })->middleware('auth:sanctum'); Route::middleware('auth:sanctum')->group(function () { // 儀表板統計數據 API Route::get('/dashboard/stats', [DashboardController::class, 'index']); Route::apiResource('accounts', AccountController::class); Route::apiResource('accounts.holdings', InvestmentHoldingController::class) ->shallow(); Route::delete('holdings/delete/{account}/{holding}', [InvestmentHoldingController::class, 'destroy']); Route::get('holdings/{holding}/transactions', [InvestmentTransactionController::class, 'index']); Route::post('holdings/{holding}/transactions', [InvestmentTransactionController::class, 'store']); Route::delete('holdings/{holding}/transactions/{transaction}', [InvestmentTransactionController::class, 'destroy']); Route::get('/accounts/{accountId}/holdings-trend', [SecurityPriceController::class, 'accountTrend']); Route::get('holdings/{holding}/realtime', [SecurityPriceController::class, 'showRealtime']); Route::get('holdings/{holding}/history', [SecurityPriceController::class, 'history']); Route::get('/securities/search', [SecurityController::class, 'index']); // 取得所有支出明細列表 Route::get('/expenses', [ExpenseController::class, 'index']); // 新增單筆支出 Route::post('/expenses', [ExpenseController::class, 'store']); // 修改單筆支出 Route::put('/expenses/{expense}', [ExpenseController::class, 'update']); // 刪除單筆支出 Route::delete('/expenses/{expense}', [ExpenseController::class, 'destroy']); // 批量刪除支出 Route::post('/expenses/destroy-batch', [ExpenseController::class, 'destroyBatch']); Route::get('/categories', [ExpenseController::class, 'categories']); Route::get('/category-rules', [ExpenseController::class, 'categoryRules']); // 分類管理 API Route::post('/categories', [CategoryController::class, 'store']); Route::put('/categories/{category}', [CategoryController::class, 'update']); Route::delete('/categories/{category}', [CategoryController::class, 'destroy']); // 自動分類規則 API Route::post('/category-rules', [CategoryRuleController::class, 'store']); Route::delete('/category-rules/{categoryRule}', [CategoryRuleController::class, 'destroy']); // 發票 CSV 上傳匯入介面 API Route::post('/expenses/import', [InvoiceImportController::class, 'store']); });