giftcon_dev/app/Http/Controllers/Admin/Product/AdminSaleCodeController.php
sungro815 b0545ab5b9 관리자 상품관리 완료
웹사이트 상품리스트 상세보기 작업중
2026-02-20 18:11:03 +09:00

96 lines
3.7 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\Product;
use App\Services\Admin\Product\AdminSaleCodeService;
use Illuminate\Http\Request;
final class AdminSaleCodeController
{
public function __construct(
private readonly AdminSaleCodeService $service,
) {}
public function index()
{
$tree = $this->service->getGroupedTree();
return view('admin.product.salecode.index', ['tree' => $tree]);
}
// --- Provider ---
public function storeProvider(Request $request)
{
$data = $request->validate([
'code' => ['required', 'string', 'max:30'],
'name' => ['required', 'string', 'max:50'],
'is_active' => ['required', 'in:0,1'],
]);
$res = $this->service->storeProvider($data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? '');
return redirect()->back()->with('toast', ['type' => $res['ok'] ? 'success' : 'danger', 'title' => '알림', 'message' => $res['message']]);
}
public function updateProvider(int $id, Request $request)
{
$data = $request->validate([
'name' => ['required', 'string', 'max:50'],
'is_active' => ['required', 'in:0,1'],
]);
$res = $this->service->updateProvider($id, $data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? '');
return redirect()->back()->with('toast', ['type' => $res['ok'] ? 'success' : 'danger', 'title' => '알림', 'message' => $res['message']]);
}
public function destroyProvider(int $id, Request $request)
{
$res = $this->service->deleteProvider($id, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? '');
return redirect()->back()->with('toast', ['type' => $res['ok'] ? 'success' : 'danger', 'title' => '알림', 'message' => $res['message']]);
}
// --- Product Code ---
public function storeCode(Request $request)
{
$data = $request->validate([
'provider_id' => ['required', 'integer'],
'api_code' => ['required', 'string', 'max:50'],
'name' => ['required', 'string', 'max:100'],
'is_active' => ['required', 'in:0,1'],
]);
$res = $this->service->storeCode($data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? '');
return redirect()->back()->with('toast', ['type' => $res['ok'] ? 'success' : 'danger', 'title' => '알림', 'message' => $res['message']]);
}
public function updateCode(int $id, Request $request)
{
$data = $request->validate([
'provider_id' => ['required', 'integer'],
'api_code' => ['required', 'string', 'max:50'],
'name' => ['required', 'string', 'max:100'],
'is_active' => ['required', 'in:0,1'],
]);
$res = $this->service->updateCode($id, $data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? '');
return redirect()->back()->with('toast', ['type' => $res['ok'] ? 'success' : 'danger', 'title' => '알림', 'message' => $res['message']]);
}
public function updateCodeSort(Request $request)
{
$data = $request->validate([
'ids' => ['required', 'array'],
'ids.*' => ['integer'],
]);
$res = $this->service->updateCodeSort($data['ids'], (int) auth('admin')->id());
return response()->json($res);
}
public function destroyCode(int $id, Request $request)
{
$res = $this->service->deleteCode($id, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? '');
return redirect()->back()->with('toast', ['type' => $res['ok'] ? 'success' : 'danger', 'title' => '알림', 'message' => $res['message']]);
}
}