mirror of
https://github.com/henry4682/finance_app.git
synced 2026-07-16 00:10:00 +00:00
68 lines
3.0 KiB
PHP
68 lines
3.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\Api\AccountController;
|
|
use App\Http\Controllers\Api\CategoryController;
|
|
use App\Http\Controllers\Api\CategoryRuleController;
|
|
use App\Http\Controllers\Api\ExpenseController;
|
|
use App\Http\Controllers\Api\InvestmentHoldingController;
|
|
use App\Http\Controllers\Api\InvestmentTransactionController;
|
|
use App\Http\Controllers\Api\InvoiceImportController;
|
|
use App\Http\Controllers\Api\SecurityController;
|
|
use App\Http\Controllers\Api\SecurityPriceController;
|
|
use App\Http\Controllers\Api\DashboardController;
|
|
|
|
Route::get('/user', function (Request $request) {
|
|
return $request->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']);
|
|
});
|