'object', 'properties' => [ 'slug' => [ 'type' => 'string', 'description' => 'Plan slug identifier', ], 'reason' => [ 'type' => 'string', 'description' => 'Reason for archiving', ], ], 'required' => ['slug'], ]; } public function handle(array $args, array $context = []): array { $workspaceId = $context['workspace_id'] ?? null; if ($workspaceId === null) { return $this->error('workspace_id is required'); } try { $plan = ArchivePlan::run( $args['slug'] ?? '', (int) $workspaceId, $args['reason'] ?? null, ); return $this->success([ 'plan' => [ 'slug' => $plan->slug, 'status' => 'archived', 'archived_at' => $plan->archived_at?->toIso8601String(), ], ]); } catch (\InvalidArgumentException $e) { return $this->error($e->getMessage()); } } }