class Contabilidade::MesDoCronogramaDoEmpenho < ApplicationRecord
  include GeradorDeEventosContabeis

  attr_accessor :lancando_mes

  has_paper_trail

  attr_default :estornado, false

  belongs_to :cronograma_do_empenho, class_name: 'Contabilidade::CronogramaDoEmpenho', required: true

  has_one :empenho, through: :cronograma_do_empenho

  validates :mes, :valor, presence: true
  validates :mes, uniqueness: { scope: :cronograma_do_empenho_id }
  validates :valor, numericality: { less_than_or_equal_to: -> (mes_do_cronograma_do_empenho) { mes_do_cronograma_do_empenho.cronograma_do_empenho.empenho.definir_valor_do_empenho } }

  enum mes: {
    janeiro: 1,
    fevereiro: 2,
    marco: 3,
    abril: 4,
    maio: 5,
    junho: 6,
    julho: 7,
    agosto: 8,
    setembro: 9,
    outubro: 10,
    novembro: 11,
    dezembro: 12
  }
end
