class Contabilidade::ConvenioBancario < ApplicationRecord
	has_paper_trail
	include TradutorConcern

	belongs_to :ordenador_de_despesa, class_name: 'Loa::OrdenadorDeDespesa', required: false
	belongs_to :banco, class_name: 'Base::Banco'

	has_many :contas_bancarias, class_name: "Base::ContaBancaria"

	validates_presence_of :layout_para_lote, :banco_id, :codigo, :descricao

	validate :valida_tamanho_do_codigo, if: Proc.new { self.codigo.present?}

	enum layout_para_lote: {
		onb: 0,
		cnab240: 1
	}

	def valida_tamanho_do_codigo
		if self.onb?
			errors.add(:codigo, 'O codigo deve ter 9 dígitos') if codigo.size != 9
		elsif self.cnab240?
			errors.add(:codigo, 'O codigo deve ter 14 dígitos') if codigo.size != 14
		end
	end

	def codigo_e_descricao
		"#{self.codigo} - #{self.descricao}"
	end
end
