feat(pricing): 단가관리 stats, bulkDestroy API 추가

- GET /pricing/stats: 단가 통계 조회 (total, draft, finalized, expired)
- DELETE /pricing/bulk: 단가 일괄 삭제 (확정된 단가 제외)
- PriceBulkDeleteRequest FormRequest 추가
- PricingService.stats(), bulkDestroy() 메서드 구현

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-09 22:19:11 +09:00
parent e6a4bf0870
commit ceb7798c28
4 changed files with 121 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
use App\Helpers\ApiResponse;
use App\Http\Controllers\Controller;
use App\Http\Requests\Pricing\PriceBulkDeleteRequest;
use App\Http\Requests\Pricing\PriceByItemsRequest;
use App\Http\Requests\Pricing\PriceCostRequest;
use App\Http\Requests\Pricing\PriceIndexRequest;
@@ -124,4 +125,29 @@ public function cost(PriceCostRequest $request)
return ['data' => $data, 'message' => __('message.fetched')];
});
}
/**
* 단가 통계 조회
*/
public function stats()
{
return ApiResponse::handle(function () {
$data = $this->service->stats();
return ['data' => $data, 'message' => __('message.fetched')];
});
}
/**
* 단가 일괄 삭제
*/
public function bulkDestroy(PriceBulkDeleteRequest $request)
{
return ApiResponse::handle(function () use ($request) {
$validated = $request->validated();
$deletedCount = $this->service->bulkDestroy($validated['ids']);
return ['data' => ['deleted_count' => $deletedCount], 'message' => __('message.deleted')];
});
}
}