# typed: strict # frozen_string_literal: true require "sorbet-runtime" require "nexus/invision/value_object" require "nexus/invision/resources/field" module Nexus module Invision module Resources class FieldGroup < T::Struct include ValueObject const :name, Integer const :fields, T::Hash[String, Field] class << self extend T::Sig sig { params(response: T::Hash[String, T.untyped]).returns(FieldGroup) } def from_response(response) FieldGroup.new( name: response["name"], fields: response["fields"].map { |f| Field.from_response(f) }, ) end end end end end end