feat: [corporate-card] 법인카드 관리 API 7개 엔드포인트 구현

- CorporateCard 모델 (corporate_cards 테이블)
- CorporateCardService (CRUD + 토글 + 활성 목록)
- CorporateCardController (ApiResponse 패턴)
- Store/Update FormRequest 검증
- 라우트: /api/v1/corporate-cards (index, store, show, update, destroy, toggle, active)
This commit is contained in:
김보곤
2026-02-20 23:29:58 +09:00
parent fdea1d0244
commit 961ab47bac
6 changed files with 452 additions and 0 deletions

View File

@@ -22,6 +22,7 @@
use App\Http\Controllers\Api\V1\CardController;
use App\Http\Controllers\Api\V1\CardTransactionController;
use App\Http\Controllers\Api\V1\ComprehensiveAnalysisController;
use App\Http\Controllers\Api\V1\CorporateCardController;
use App\Http\Controllers\Api\V1\DailyReportController;
use App\Http\Controllers\Api\V1\DepositController;
use App\Http\Controllers\Api\V1\EntertainmentController;
@@ -65,6 +66,17 @@
Route::patch('/{id}/set-primary', [BankAccountController::class, 'setPrimary'])->whereNumber('id')->name('v1.bank-accounts.set-primary');
});
// CorporateCard API (법인카드 관리)
Route::prefix('corporate-cards')->group(function () {
Route::get('', [CorporateCardController::class, 'index'])->name('v1.corporate-cards.index');
Route::post('', [CorporateCardController::class, 'store'])->name('v1.corporate-cards.store');
Route::get('/active', [CorporateCardController::class, 'active'])->name('v1.corporate-cards.active');
Route::get('/{id}', [CorporateCardController::class, 'show'])->whereNumber('id')->name('v1.corporate-cards.show');
Route::put('/{id}', [CorporateCardController::class, 'update'])->whereNumber('id')->name('v1.corporate-cards.update');
Route::delete('/{id}', [CorporateCardController::class, 'destroy'])->whereNumber('id')->name('v1.corporate-cards.destroy');
Route::patch('/{id}/toggle', [CorporateCardController::class, 'toggle'])->whereNumber('id')->name('v1.corporate-cards.toggle');
});
// Deposit API (입금 관리)
Route::prefix('deposits')->group(function () {
Route::get('', [DepositController::class, 'index'])->name('v1.deposits.index');