feat(API): 카드 거래 등록/수정/삭제 API 추가

- CardTransactionService: store, update, destroy 메서드 추가
- CardTransactionController: store, update, destroy 메서드 추가
- routes/api.php: POST, PUT/{id}, DELETE/{id} 라우트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-22 20:49:29 +09:00
parent 57229b3cc6
commit f85e070913
3 changed files with 134 additions and 1 deletions

View File

@@ -89,4 +89,51 @@ public function show(int $id): JsonResponse
return $transaction;
}, __('message.fetched'));
}
/**
* 카드 거래 등록
*/
public function store(Request $request): JsonResponse
{
return ApiResponse::handle(function () use ($request) {
$validated = $request->validate([
'card_id' => 'nullable|integer|exists:cards,id',
'used_at' => 'required|date',
'merchant_name' => 'required|string|max:100',
'amount' => 'required|numeric|min:0',
'description' => 'nullable|string|max:500',
'account_code' => 'nullable|string|max:20',
]);
return $this->service->store($validated);
}, __('message.created'));
}
/**
* 카드 거래 수정
*/
public function update(Request $request, int $id): JsonResponse
{
return ApiResponse::handle(function () use ($request, $id) {
$validated = $request->validate([
'used_at' => 'nullable|date',
'merchant_name' => 'nullable|string|max:100',
'amount' => 'nullable|numeric|min:0',
'description' => 'nullable|string|max:500',
'account_code' => 'nullable|string|max:20',
]);
return $this->service->update($id, $validated);
}, __('message.updated'));
}
/**
* 카드 거래 삭제
*/
public function destroy(int $id): JsonResponse
{
return ApiResponse::handle(function () use ($id) {
return $this->service->destroy($id);
}, __('message.deleted'));
}
}