class Title < ApplicationRecord
  belongs_to :title_provider_group_name, optional: true
  belongs_to :server, optional: true
  belongs_to :billing_company, optional: true
  has_many :users, dependent: :nullify
  has_many :light_boxes, dependent: :destroy

  before_validation :initialize_title_data, on: :create
  validates :server_id, :country_id, :visible, :status, presence: true

  def user
    users.first
  end

  def active?
    status&.to_sym == :active
  end

  def initialize_title_data
    self.server_id ||= Server.find_by(is_self: true)&.id
    self.country_id ||= 1
    self.visible ||= 1
  end

  def visible_text
    @visible_text ||= I18n.t('title_visibles').values
    @visible_text[visible] rescue nil
  end

  def status_text
    @status_text ||= I18n.t("title_statuses.#{status}", default: nil)
  end
end
