feat: [business-card] 3단계 워크플로우 구현 (요청→제작의뢰→처리완료)
- 모델: STATUS_ORDERED 추가, markAsOrdered() 헬퍼
- 서비스: order(), getOrderedRequests() 추가
- 컨트롤러: order() 액션 추가
- 관리자 뷰: 좌측 신규요청 + 우측 제작중 + 하단 처리완료
- 파트너 뷰: 제작중(파란) 상태 뱃지 추가
- 라우트: POST business-cards/{id}/order 추가
This commit is contained in:
@@ -30,7 +30,7 @@ public function index(Request $request): View|Response
|
||||
}
|
||||
|
||||
/**
|
||||
* 명함신청 처리 (관리자 전용 - 대기/완료 2분할)
|
||||
* 명함신청 처리 (관리자 전용)
|
||||
*/
|
||||
public function manage(Request $request): View|Response
|
||||
{
|
||||
@@ -45,11 +45,13 @@ public function manage(Request $request): View|Response
|
||||
$search = $request->get('search');
|
||||
$stats = $this->service->getStats();
|
||||
$pendingRequests = $this->service->getPendingRequests($search);
|
||||
$orderedRequests = $this->service->getOrderedRequests($search);
|
||||
$processedRequests = $this->service->getProcessedRequests($search);
|
||||
|
||||
return view('sales.business-cards.admin-index', compact(
|
||||
'stats',
|
||||
'pendingRequests',
|
||||
'orderedRequests',
|
||||
'processedRequests',
|
||||
'search'
|
||||
));
|
||||
@@ -75,6 +77,28 @@ public function store(Request $request)
|
||||
->with('success', '명함 신청이 완료되었습니다.');
|
||||
}
|
||||
|
||||
/**
|
||||
* 제작의뢰 (관리자 전용)
|
||||
*/
|
||||
public function order(Request $request, int $id)
|
||||
{
|
||||
if (! auth()->user()->isAdmin()) {
|
||||
abort(403, '관리자만 처리할 수 있습니다.');
|
||||
}
|
||||
|
||||
$this->service->order($id);
|
||||
|
||||
if ($request->expectsJson() || $request->header('Accept') === 'application/json') {
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '제작의뢰 처리되었습니다.',
|
||||
]);
|
||||
}
|
||||
|
||||
return redirect()->route('sales.business-cards.manage')
|
||||
->with('success', '제작의뢰 처리되었습니다.');
|
||||
}
|
||||
|
||||
/**
|
||||
* 처리 완료 (관리자 전용)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user