From b7465becab78ab513aecbb49f299a43057c35b41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=B3=91=EC=B2=A0?= Date: Tue, 3 Mar 2026 20:02:07 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[approval]=20=EA=B2=B0=EC=9E=AC=20?= =?UTF-8?q?=EC=88=98=EC=8B=A0=ED=95=A8=20=EB=82=A0=EC=A7=9C=20=EB=B2=94?= =?UTF-8?q?=EC=9C=84=20=ED=95=84=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - InboxIndexRequest에 start_date/end_date 검증 룰 추가 - ApprovalService.inbox()에 created_at 날짜 범위 필터 구현 Co-Authored-By: Claude Opus 4.6 --- app/Http/Requests/Approval/InboxIndexRequest.php | 2 ++ app/Services/ApprovalService.php | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/app/Http/Requests/Approval/InboxIndexRequest.php b/app/Http/Requests/Approval/InboxIndexRequest.php index b6d7ac0..702bb65 100644 --- a/app/Http/Requests/Approval/InboxIndexRequest.php +++ b/app/Http/Requests/Approval/InboxIndexRequest.php @@ -22,6 +22,8 @@ public function rules(): array 'sort_dir' => 'nullable|string|in:asc,desc', 'per_page' => 'nullable|integer|min:1', 'page' => 'nullable|integer|min:1', + 'start_date' => 'nullable|date_format:Y-m-d', + 'end_date' => 'nullable|date_format:Y-m-d|after_or_equal:start_date', ]; } } diff --git a/app/Services/ApprovalService.php b/app/Services/ApprovalService.php index 7516427..4e4ce2a 100644 --- a/app/Services/ApprovalService.php +++ b/app/Services/ApprovalService.php @@ -446,6 +446,14 @@ public function inbox(array $params): LengthAwarePaginator } } + // 날짜 범위 필터 + if (! empty($params['start_date'])) { + $query->whereDate('created_at', '>=', $params['start_date']); + } + if (! empty($params['end_date'])) { + $query->whereDate('created_at', '<=', $params['end_date']); + } + // 정렬 $sortBy = $params['sort_by'] ?? 'created_at'; $sortDir = $params['sort_dir'] ?? 'desc';