Class: Moonbase::Models::RelationField

Inherits:
Internal::Type::BaseModel show all
Defined in:
lib/moonbase/models/relation_field.rb

Defined Under Namespace

Modules: Cardinality, Kind, RelationType

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Internal::Type::BaseModel

==, #==, #[], coerce, #deconstruct_keys, #deep_to_h, dump, fields, hash, #hash, inherited, inspect, #inspect, known_fields, optional, recursively_to_h, required, #to_h, #to_json, #to_s, to_sorbet_type, #to_yaml

Methods included from Internal::Type::Converter

#coerce, coerce, #dump, dump, #inspect, inspect, meta_info, new_coerce_state, type_info

Methods included from Internal::Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type

Constructor Details

#initialize(id:, allowed_collections:, cardinality:, created_at:, default_values:, kind:, name:, readonly:, ref:, relation_type:, required:, unique:, updated_at:, description: nil, reverse_field_name: nil, reverse_fields: nil, source_field: nil, type: :"field/relation") ⇒ Object

Some parameter documentations has been truncated, see Moonbase::Models::RelationField for more details.

A field that creates a link between items in different collections, enabling cross-collection relationships.

Parameters:



# File 'lib/moonbase/models/relation_field.rb', line 122

Instance Attribute Details

#allowed_collectionsArray<Moonbase::Models::CollectionPointer>

The set of collections that are valid targets for this relation.



16
# File 'lib/moonbase/models/relation_field.rb', line 16

required :allowed_collections, -> { Moonbase::Internal::Type::ArrayOf[Moonbase::CollectionPointer] }

#cardinalitySymbol, Moonbase::Models::RelationField::Cardinality

Specifies whether the field can hold a single value (‘one`) or multiple values (`many`).



23
# File 'lib/moonbase/models/relation_field.rb', line 23

required :cardinality, enum: -> { Moonbase::RelationField::Cardinality }

#created_atTime

Time at which the object was created, as an ISO 8601 timestamp in UTC.

Returns:

  • (Time)


29
# File 'lib/moonbase/models/relation_field.rb', line 29

required :created_at, Time

#default_valuesArray<Moonbase::Models::SingleLineTextValue, Moonbase::Models::MultiLineTextValue, Moonbase::Models::IdentifierValue, Moonbase::Models::IntegerValue, Moonbase::Models::FloatValue, Moonbase::Models::MonetaryValue, Moonbase::Models::PercentageValue, Moonbase::Models::BooleanValue, Moonbase::Models::EmailValue, Moonbase::Models::URLValue, Moonbase::Models::DomainValue, Moonbase::Models::SocialXValue, Moonbase::Models::SocialLinkedInValue, Moonbase::Models::TelephoneNumber, Moonbase::Models::GeoValue, Moonbase::Models::DateValue, Moonbase::Models::CurrentDate, Moonbase::Models::DatetimeValue, Moonbase::Models::CurrentDatetime, Moonbase::Models::ChoiceValue, Moonbase::Models::FunnelStepValue, Moonbase::Models::RelationValue, Moonbase::Models::CurrentMember>



34
# File 'lib/moonbase/models/relation_field.rb', line 34

required :default_values, -> { Moonbase::Internal::Type::ArrayOf[union: Moonbase::FieldDefaultValue] }

#descriptionString?

An optional, longer-form description of the field’s purpose.

Returns:

  • (String, nil)


99
# File 'lib/moonbase/models/relation_field.rb', line 99

optional :description, String

#idString

Unique identifier for the object.

Returns:

  • (String)


10
# File 'lib/moonbase/models/relation_field.rb', line 10

required :id, String

#kindSymbol, Moonbase::Models::RelationField::Kind

‘system` fields are managed by Moonbase, `inverse` fields are the reverse side of a two-way relation, and `custom` fields are user-created.



41
# File 'lib/moonbase/models/relation_field.rb', line 41

required :kind, enum: -> { Moonbase::RelationField::Kind }

#nameString

The human-readable name of the field (e.g., “Account”).

Returns:

  • (String)


47
# File 'lib/moonbase/models/relation_field.rb', line 47

required :name, String

#readonlyBoolean

If ‘true`, the value of this field is system-managed and cannot be updated via the API.

Returns:

  • (Boolean)


54
# File 'lib/moonbase/models/relation_field.rb', line 54

required :readonly, Moonbase::Internal::Type::Boolean

#refString

A unique, stable, machine-readable identifier for the field within its collection (e.g., ‘account`).

Returns:

  • (String)


61
# File 'lib/moonbase/models/relation_field.rb', line 61

required :ref, String

#relation_typeSymbol, Moonbase::Models::RelationField::RelationType

The type of relationship. Can be ‘one_way` for simple references or `two_way` for bidirectional relationships.



68
# File 'lib/moonbase/models/relation_field.rb', line 68

required :relation_type, enum: -> { Moonbase::RelationField::RelationType }

#requiredBoolean

If ‘true`, this field must have a value.

Returns:

  • (Boolean)


74
# File 'lib/moonbase/models/relation_field.rb', line 74

required :required, Moonbase::Internal::Type::Boolean

#reverse_field_nameString?

The name given to auto-created reverse fields on target collections. Only present on ‘two_way` source fields.

Returns:

  • (String, nil)


106
# File 'lib/moonbase/models/relation_field.rb', line 106

optional :reverse_field_name, String

#reverse_fieldsArray<Moonbase::Models::FieldPointer>?

A list of reverse fields created on each target collection. Only present on ‘two_way` source fields.

Returns:



113
# File 'lib/moonbase/models/relation_field.rb', line 113

optional :reverse_fields, -> { Moonbase::Internal::Type::ArrayOf[Moonbase::FieldPointer] }

#source_fieldMoonbase::Models::FieldPointer?

A reference to the source field that manages this reverse field. Only present on reverse (contingent) fields.



120
# File 'lib/moonbase/models/relation_field.rb', line 120

optional :source_field, -> { Moonbase::FieldPointer }

#typeSymbol, :"field/relation"

The data type of the field. Always ‘field/relation` for this field.

Returns:

  • (Symbol, :"field/relation")


80
# File 'lib/moonbase/models/relation_field.rb', line 80

required :type, const: :"field/relation"

#uniqueBoolean

If ‘true`, values for this field must be unique across all items in the collection.

Returns:

  • (Boolean)


87
# File 'lib/moonbase/models/relation_field.rb', line 87

required :unique, Moonbase::Internal::Type::Boolean

#updated_atTime

Time at which the object was last updated, as an ISO 8601 timestamp in UTC.

Returns:

  • (Time)


93
# File 'lib/moonbase/models/relation_field.rb', line 93

required :updated_at, Time

Class Method Details

.valuesArray<Symbol>

Returns:

  • (Array<Symbol>)


# File 'lib/moonbase/models/relation_field.rb', line 175