middleware('auth'); } public function getFormStats(string $workspaceId, string $formId) { $form = Form::findOrFail($formId); $this->authorize('view', $form); $formStats = $form->statistics()->where('date', '>', now()->subDays(29)->startOfDay())->get(); $periodStats = ['views' => [], 'submissions' => []]; foreach (CarbonPeriod::create(now()->subDays(29), now()) as $dateObj) { $date = $dateObj->format('d-m-Y'); $statisticData = $formStats->where('date', $dateObj->format('Y-m-d'))->first(); $periodStats['views'][$date] = $statisticData->data['views'] ?? 0; $periodStats['submissions'][$date] = $statisticData->data['submissions'] ?? 0; if ($dateObj->toDateString() === now()->toDateString()) { $periodStats['views'][$date] += $form->views()->count(); $periodStats['submissions'][$date] += $form->submissions()->whereDate('created_at', '>=', now()->startOfDay())->count(); } } return $periodStats; } }