activeUnitId(); abort_if(!$unitId, 404, 'Unidade não encontrada.'); $students = Student::where('unit_id', $unitId)->get(['id', 'name', 'birth_date', 'created_at']); $contracts = StudentContract::where('unit_id', $unitId)->get(['id', 'status']); return $this->successResponse(payload: [ 'students_count' => $students->count(), 'contracts' => [ 'active' => $contracts->where('status', 'active')->count(), 'frozen' => $contracts->where('status', 'frozen')->count(), 'cancelled' => $contracts->where('status', 'cancelled')->count(), ], 'birthdays' => $students ->filter(fn (Student $student) => $student->birth_date?->month === now()->month) ->map(fn (Student $student) => [ 'day' => $student->birth_date->day, 'name' => $student->name, ]) ->sortBy('day') ->values(), 'enrollments' => $students->map(fn (Student $student) => [ 'created_at' => $student->created_at?->toISOString(), ])->values(), ]); } }