class GestaoDeEstoque::Escola < ApplicationRecord
  has_paper_trail

  has_one :almoxarifado, class_name: 'GestaoDeEstoque::Almoxarifado'
  has_many :programa_por_escolas, class_name: "GestaoDeEstoque::ProgramaPorEscola", dependent: :destroy

  attr_default :status, :ativo

  validates_presence_of :data_inicial, :status, :nome, :dependencia_administrativa
  # validates_presence_of :data_inicial, :data_final, :status, :nome, :diretor, :dependencia_administrativa

  accepts_nested_attributes_for :programa_por_escolas, allow_destroy: true

  enum status: {
    inativo: 0,
    ativo: 1
  }

  enum dependencia_administrativa: {
    municipal: 1,
    contratada: 2
  }

  def programas
    self.programa_por_escolas.map{|programa| [programa.nome_programa_e_acao_completa, programa.id]}
  end
  
  def existe_transferencia?
    GestaoDeEstoque::Transferencia
      .where('almoxarifado_id = ? OR almoxarifado_de_destino_id = ?', self.almoxarifado, self.almoxarifado)
      .exists?
  end
end
