class Licitacao::DocumentoDoContrato < ApplicationRecord
	include TradutorConcern
	has_paper_trail

	attr_accessor :lei

	attr_default :data_do_documento, Date.today

	has_attached_file :documento
	validates_attachment_content_type :documento, content_type: [
		'text/plain',
		'application/pdf',
		'application/vnd.oasis.opendocument.spreadsheet',
		'application/vnd.ms-excel',
		'application/msexcel',
		'application/x-msexcel',
		'application/x-ms-excel',
		'application/x-excel',
		'application/x-dos_ms_excel',
		'application/xls',
		'application/x-xls',
		'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']

	validates_attachment_size :documento, in: 0..5.megabytes

	belongs_to :contrato, class_name: "Licitacao::Contrato"
	belongs_to :usuario
	belongs_to :modelo_do_documento, class_name: "Licitacao::ModeloDeDocumento"

	validates_presence_of :usuario_id, :contrato_id
	validates_presence_of :titulo_personalizado, :tipo_de_documento, if: Proc.new{ self.enviar_para_pncp? }
	validates_presence_of :documento, unless: Proc.new{ self.texto.present? }
	validates_absence_of :texto, if: Proc.new{ self.documento.present? }

	validates :data_do_documento, sabado_ou_domingo_ou_feriado: { flexivel: false }

	enum tipo_de_documento: {
		contrato: 1,
		termo_de_rescisao: 2,
		termo_aditivo: 3,
		termo_de_apostilamento: 4,
		nota_de_empenho: 5,
		relatorio_final_de_contrato: 6,
		outros_documentos: 7
	}

	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.titulo_do_modelo.to_s
		end
	end
end
