store/app/Http/Controllers/Admin/Manage/OwnerVerificationController.php

65 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\Manage;
use App\Http\Controllers\Concerns\FlashesEntityMessage;
use App\Http\Controllers\Controller;
use App\Models\Cutting;
use App\Services\Manage\StockService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Inertia\Inertia;
use Inertia\Response;
class OwnerVerificationController extends Controller
{
use FlashesEntityMessage;
public function __construct(
private readonly StockService $stockService,
) {}
public function index(Request $request): Response
{
$user = $request->user();
return Inertia::render('admin/manage/owner-verifications/Index', [
'pendingCuttings' => $this->stockService->getPendingApprovalCuttings($user),
]);
}
public function approve(Request $request, Cutting $cutting): RedirectResponse
{
$request->validate([
'approval_note' => ['nullable', 'string', 'max:500'],
]);
$this->stockService->approveVerification(
$cutting,
$request->user(),
$request->input('approval_note'),
);
$this->flashSuccess('Verifikasi berhasil disetujui. Stok produk telah ditambahkan ke toko.');
return redirect()->route('admin.manage.owner-verifications.index');
}
public function reject(Request $request, Cutting $cutting): RedirectResponse
{
$request->validate([
'reason' => ['required', 'string', 'max:500'],
]);
$this->stockService->rejectVerification(
$cutting,
$request->user(),
$request->input('reason'),
);
$this->flashSuccess('Verifikasi berhasil ditolak.');
return redirect()->route('admin.manage.owner-verifications.index');
}
}