class Licitacao::DocumentoDoAditivo < ApplicationRecord
	include TradutorConcern
	include AASM
	has_paper_trail

	has_attached_file :documento
	validates_attachment_content_type :documento, content_type: ['application/pdf']
	validates_attachment_size :documento, in: 0..7.megabytes

	attr_accessor :lei

	belongs_to :usuario
	belongs_to :aditivo, class_name: 'Licitacao::Aditivo', required: true
	belongs_to :modelo_do_documento, class_name: "Licitacao::ModeloDeDocumento"

	validates_presence_of :titulo_personalizado, if: Proc.new{ self.personalizado? || self.enviar_para_pncp?}
	validates :tipo_de_documento, immutable: true
	validates :data_do_documento, sabado_ou_domingo_ou_feriado: { flexivel: false }
	validates :tipo_de_documento, format: { with: /\Aaditivo\z/, message: "deve ser do tipo Aditivo para o PNCP" }, if: -> { enviar_para_pncp? }

	after_destroy :remove_do_pncp,  if: Proc.new{ self.enviado_para_o_pncp}

	enum tipo_de_documento: {
		aditivo: 16,
		personalizado: 98,
		outros_documentos: 99
	}

	def titulo_do_modelo
		if self.modelo_do_documento && self.modelo_do_documento.titulo
			" - " + self.modelo_do_documento.try(:titulo)
		end
	end

	def titulo
		if self.titulo_personalizado.present?
			self.titulo_personalizado.try(:upcase)
		else
			self.localizar(:tipo_de_documento).try(:humanize).try(:upcase) + self.titulo_do_modelo.to_s
		end
	end
	def remove_do_pncp
		web_service = Pncp::WebserviceController.new()
		web_service.exclui_documento_do_aditivo(self)
	end
end
