2025-08-25 17:46:34 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Api\V1;
|
|
|
|
|
|
2025-11-06 17:45:49 +09:00
|
|
|
use App\Helpers\ApiResponse;
|
2025-08-25 17:46:34 +09:00
|
|
|
use App\Http\Controllers\Controller;
|
2025-11-14 13:45:54 +09:00
|
|
|
use App\Http\Requests\CategoryField\CategoryFieldStoreRequest;
|
|
|
|
|
use App\Http\Requests\CategoryField\CategoryFieldUpdateRequest;
|
2025-08-25 17:46:34 +09:00
|
|
|
use App\Services\CategoryFieldService;
|
2025-11-06 17:45:49 +09:00
|
|
|
use Illuminate\Http\Request;
|
2025-08-25 17:46:34 +09:00
|
|
|
|
|
|
|
|
class CategoryFieldController extends Controller
|
|
|
|
|
{
|
|
|
|
|
public function __construct(private CategoryFieldService $service) {}
|
|
|
|
|
|
|
|
|
|
// GET /categories/{id}/fields
|
|
|
|
|
public function index(int $id, Request $request)
|
|
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($id, $request) {
|
|
|
|
|
return $this->service->index($id, $request->all());
|
2025-11-14 13:45:54 +09:00
|
|
|
}, __('message.category_field.fetched'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// POST /categories/{id}/fields
|
2025-11-14 13:45:54 +09:00
|
|
|
public function store(int $id, CategoryFieldStoreRequest $request)
|
2025-08-25 17:46:34 +09:00
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($id, $request) {
|
2025-11-14 13:45:54 +09:00
|
|
|
return $this->service->store($id, $request->validated());
|
|
|
|
|
}, __('message.category_field.created'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GET /categories/fields/{field}
|
|
|
|
|
public function show(int $field)
|
|
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($field) {
|
|
|
|
|
return $this->service->show($field);
|
2025-11-14 13:45:54 +09:00
|
|
|
}, __('message.category_field.fetched'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// PATCH /categories/fields/{field}
|
2025-11-14 13:45:54 +09:00
|
|
|
public function update(int $field, CategoryFieldUpdateRequest $request)
|
2025-08-25 17:46:34 +09:00
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($field, $request) {
|
2025-11-14 13:45:54 +09:00
|
|
|
return $this->service->update($field, $request->validated());
|
|
|
|
|
}, __('message.category_field.updated'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// DELETE /categories/fields/{field}
|
|
|
|
|
public function destroy(int $field)
|
|
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($field) {
|
|
|
|
|
$this->service->destroy($field);
|
2025-11-06 17:45:49 +09:00
|
|
|
|
2025-08-25 17:46:34 +09:00
|
|
|
return 'success';
|
2025-11-14 13:45:54 +09:00
|
|
|
}, __('message.category_field.deleted'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// POST /categories/{id}/fields/reorder
|
|
|
|
|
public function reorder(int $id, Request $request)
|
|
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($id, $request) {
|
|
|
|
|
$this->service->reorder($id, $request->input());
|
2025-11-06 17:45:49 +09:00
|
|
|
|
2025-08-25 17:46:34 +09:00
|
|
|
return 'success';
|
2025-11-14 13:45:54 +09:00
|
|
|
}, __('message.category_field.reordered'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// PUT /categories/{id}/fields/bulk-upsert
|
|
|
|
|
public function bulkUpsert(int $id, Request $request)
|
|
|
|
|
{
|
|
|
|
|
return ApiResponse::handle(function () use ($id, $request) {
|
|
|
|
|
return $this->service->bulkUpsert($id, $request->input('items', []));
|
2025-11-14 13:45:54 +09:00
|
|
|
}, __('message.category_field.bulk_upsert'));
|
2025-08-25 17:46:34 +09:00
|
|
|
}
|
|
|
|
|
}
|