module CmAdmin::Models::Utils::Associations

def validation_for_association

def validation_for_association
  return unless field_type.to_s == "association"
  raise ArgumentError, 'Expected association_name and association_type to be present' if association_name.nil? || association_type.nil?
  if association_type.to_s == 'polymorphic'
    raise ArgumentError, "Expected field_name - #{field_name} - to be an array of hash. Eg, [{table_name_1: 'column_name_1'}, {table_name_2: 'column_name_2'}]" unless field_name.is_a?(Array)
    field_name.each do |element|
      raise ArgumentError, "Expected element #{element} to be a hash. Eg, [{table_name_1: 'column_name_1'}, {table_name_2: 'column_name_2'}]" unless element.is_a?(Hash)
    end
  elsif ['belongs_to', 'has_one'].include? association_type.to_s
    raise ArgumentError, "Expected field_name - #{field_name} to be a String or Symbol" unless field_name.is_a?(Symbol) || field_name.is_a?(String)
  end
end