query('reconcile_type', '')); $q = ReconcileJob::query()->orderByDesc('id'); if ($type !== '') { $q->where('reconcile_type', $type); } $paginator = $q->paginate($p['perPage'], ['*'], 'page', $p['page']); return AdminApiList::json($paginator, fn (ReconcileJob $j) => $this->row($j)); } /** @return array */ private function row(ReconcileJob $j): array { return [ 'id' => (int) $j->id, 'job_no' => $j->job_no, 'admin_user_id' => $j->admin_user_id !== null ? (int) $j->admin_user_id : null, 'reconcile_type' => $j->reconcile_type, 'status' => $j->status, 'period_start' => $j->period_start?->toIso8601String(), 'period_end' => $j->period_end?->toIso8601String(), 'summary_json' => $j->summary_json, 'finished_at' => $j->finished_at?->toIso8601String(), 'created_at' => $j->created_at?->toIso8601String(), ]; } }