['users:read']]], tags: ['Analytics'], parameters: [ new OA\Parameter(name: 'days', in: 'query', required: false, description: 'Ventana en días (7-90, default 30)', schema: new OA\Schema(type: 'integer')), ], responses: [ new OA\Response(response: 200, description: 'Resumen de analíticas'), new OA\Response(response: 403, description: 'Sin permiso users.view'), ] )] public function summary(Request $request) { $actor = $request->user('api'); abort_if($actor && ! $actor->can('users.view'), 403); $days = min(max((int) $request->integer('days', 30), 7), 90); return response()->json(AnalyticsSummary::build($days)); } }