class Base::Tecnico < ApplicationRecord
	has_paper_trail

	attr_accessor :de_um_orgao

	belongs_to :modulo, polymorphic: true
	belongs_to :orgao

	validates_presence_of :modulo_id, :nome, :ordem_de_impressao

	validates_presence_of :cargo, if: Proc.new{|tecnico| tecnico.de_um_orgao.eql?('true')}
	validates_presence_of :orgao_id, if: Proc.new{|tecnico| tecnico.de_um_orgao.eql?('true')}
	validates_presence_of :consultoria, unless: Proc.new{|tecnico| tecnico.de_um_orgao.eql?('true')}

	validates_absence_of :cargo, unless: Proc.new{|tecnico| tecnico.de_um_orgao.eql?('true')}
	validates_absence_of :orgao_id, unless: Proc.new{|tecnico| tecnico.de_um_orgao.eql?('true')}
	validates_absence_of :consultoria, if: Proc.new{|tecnico| tecnico.de_um_orgao.eql?('true')}

	validates_numericality_of :ordem_de_impressao, greater_than: 0

	validates :modulo_id, immutable: true
end
