module JSONAPI::RelationshipHelpers

def extract_id_from_identifier(identifier)

def extract_id_from_identifier(identifier)
  ResourceIdentifier.extract_id(identifier)
end

def extract_lid_from_identifier(identifier)

def extract_lid_from_identifier(identifier)
  ResourceIdentifier.extract_lid(identifier)
end

def extract_sort_direction(sort_field)

def extract_sort_direction(sort_field)
  SortParsing.extract_sort_direction(sort_field)
end

def extract_sort_field_name(sort_field)

Delegate to SortParsing
def extract_sort_field_name(sort_field)
  SortParsing.extract_sort_field_name(sort_field)
end

def extract_type_from_identifier(identifier)

def extract_type_from_identifier(identifier)
  ResourceIdentifier.extract_type(identifier)
end

def find_relationship_definition(definition, relationship_name)

def find_relationship_definition(definition, relationship_name)
  definition.relationship_definitions.find { |r| r[:name].to_s == relationship_name.to_s }
end

def model_type_name(model_class)

def model_type_name(model_class)
  TypeConversion.model_type_name(model_class)
end

def polymorphic_association?(definition, relationship_name)

def polymorphic_association?(definition, relationship_name)
  ResourceIdentifier.polymorphic_association?(definition, relationship_name)
end

def polymorphic_association_for_association?(association, definition)

def polymorphic_association_for_association?(association, definition)
  ResourceIdentifier.polymorphic_association_for_association?(association, definition)
end

def resolve_and_find_related_resource(identifier, association:, resource_class:, relationship_name:)

def resolve_and_find_related_resource(identifier, association:, resource_class:, relationship_name:)
  ResourceIdentifier.resolve_and_find_related_record(
    identifier,
    association:,
    definition: resource_class,
    relationship_name:,
  )
end

def resource_type_name(definition_class)

def resource_type_name(definition_class)
  TypeConversion.resource_type_name(definition_class)
end

def serialize_resource_identifier(

rubocop:disable Lint/UnusedMethodArgument
Delegate to ResourceIdentifier
def serialize_resource_identifier(
  record, association: nil, resource_class: nil, use_instance_class: false, base_resource_class: nil
)
  # rubocop:enable Lint/UnusedMethodArgument
  ResourceIdentifier.serialize_identifier(
    record,
    association:,
    definition: resource_class,
    use_instance_class:,
  )
end

def sti_subclass?(instance_class, association_class)

def sti_subclass?(instance_class, association_class)
  ResourceIdentifier.sti_subclass?(instance_class, association_class)
end

def type_to_class_name(type)

Delegate to TypeConversion
def type_to_class_name(type)
  TypeConversion.type_to_class_name(type)
end