name ?? Str::camel($this->column); } public function getColumn(): string { return $this->column; } public function description(): string { return ''; } public function args(): array { return []; } public function type(): Type { $baseType = $this->baseType(); $type = $baseType instanceof BaseType ? GraphQL::type($baseType->getName()) : $baseType; if (! $this->nullable) { return Type::nonNull($type); } return $type; } abstract public function baseType(): Type|BaseType; public function resolve($root, array $args, $context, ResolveInfo $resolveInfo): mixed { return Arr::get($root, $this->column); } }