class Region < ApplicationRecord
  extend FriendlyId
  friendly_id :name, use: :slugged

  has_many :countries, dependent: :restrict_with_error
  has_many :cities, through: :countries
  has_many :subregions

  validates :name, presence: true, uniqueness: true
  validates :code, presence: true, uniqueness: true

  def to_s
    name
  end

  def localized_name
    I18n.t("regions.#{code}")
  end

  # 模型中允许被搜索的关联
  def self.ransackable_associations(auth_object = nil)
    [ "countries", "cities" ]
  end

  # 允许被搜索的属性列表
  def self.ransackable_attributes(auth_object = nil)
    [ "code", "created_at", "id", "id_value", "name", "slug", "updated_at" ]
  end
end