| 1234567891011121314151617181920212223242526272829303132 |
- <?php
- namespace App\Http\Controllers;
- use App\Services\FranchisorDashboardService;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Support\Carbon;
- class FranchisorDashboardController extends Controller
- {
- public function __construct(
- protected FranchisorDashboardService $service,
- ) {}
- public function overview(): JsonResponse
- {
- $data = request()->validate([
- 'unit_ids' => ['sometimes', 'array'],
- 'unit_ids.*' => ['integer', 'exists:units,id'],
- 'start_date' => ['nullable', 'date'],
- 'end_date' => ['nullable', 'date', 'after_or_equal:start_date'],
- ]);
- $unitIds = array_values(array_filter((array) ($data['unit_ids'] ?? [])));
- $startDate = isset($data['start_date']) ? Carbon::parse($data['start_date'])->startOfDay() : null;
- $endDate = isset($data['end_date']) ? Carbon::parse($data['end_date'])->endOfDay() : null;
- return $this->successResponse(
- payload: $this->service->overview($unitIds, $startDate, $endDate),
- );
- }
- }
|