class PrincipalMailer < ApplicationMailer
	default from: 'naoresponder@speedgov.com.br'

	def ppa_participativo_status_da_proposta proposta_id
		@proposta = ::Ppa::Proposta.find( proposta_id )
		@cidadao = @proposta.cidadao
		attachments.inline['brasao.png'] = {
			data: File.read(Rails.root.join(Configuracao.first.brasao.path)),
			mime_type: 'image/png'
		} if Configuracao.first.brasao.path

		mail(to: @cidadao.email, subject: "Status da sua proposta no PPA Participativo")
	end

	def solicitar_cotacao pessoa_do_pedido_id, email
		@pessoa_do_pedido = Licitacao::PessoaDoPedido.find(pessoa_do_pedido_id)
		@configuracao = Configuracao.last
		mail(to: email, subject: "Solicitação de Proposta de Preço para #{@configuracao.nome_da_prefeitura}") if !email.nil?
	end

	def solicitar_medicao_da_obra medicao_da_obra_id, email
		@medicao_da_obra = Contabilidade::MedicaoDaObra.find(medicao_da_obra_id)
		@configuracao = Configuracao.last
		mail(to: email, subject: "Solicitação de Medição da Obra para #{@configuracao.nome_da_prefeitura}") if !email.nil?
	end

	def relatorio_de_medicao_em_liquidacao medicao_da_obra_id, email, pdf
		attachments.inline['Relatório de Medição em Liquidação.pdf'] = pdf

		@medicao_da_obra = Contabilidade::MedicaoDaObra.find(medicao_da_obra_id)
		@configuracoes = Configuracao.last
		mail(to: email, subject: "Relatório de Medição em Liquidação para #{@configuracoes.nome_da_prefeitura}") if !email.nil?
	end

	def cotacao_externa pdf, pessoa_do_pedido_id
		attachments.inline['cotacao.pdf'] = pdf

		@pessoa_do_pedido = Licitacao::PessoaDoPedido.find(pessoa_do_pedido_id)
		@configuracao = Configuracao.last
		mail(to: @pessoa_do_pedido.pessoa.email, subject: "Comprovante de envio de cotação de preço para #{@configuracao.nome_da_prefeitura}")
	end

	def confirmar_cotacao pessoa_do_pedido_id, previamente_cotado
		@pessoa_do_pedido = Licitacao::PessoaDoPedido.find(pessoa_do_pedido_id)
		@configuracao = Configuracao.last
		@acao = previamente_cotado ? "atualizar" : "enviar"
		mail(to: @pessoa_do_pedido.pessoa.email, subject: "Confirmação da Proposta de Preço para #{@configuracao.nome_da_prefeitura}")
	end

	def pagamento_confirmado pdf, pagamento_id
		attachments.inline['pagamento.pdf'] = pdf

		@pagamento = Contabilidade::Pagamento.find(pagamento_id)
		@configuracao = Configuracao.last
		mail(to: @pagamento.empenho.pessoa.email, subject: "Seu pagamento foi realizado pela #{@configuracao.nome_da_prefeitura}")
	end

	def ordem_de_compra pdf, ordem_de_compra
		attachments.inline['ordem_de_compra.pdf'] = pdf

		@ordem_de_compra = ordem_de_compra
		@configuracao = Configuracao.last
		mail(to: @ordem_de_compra.empenho.pessoa.email, subject: "Ordem de Fornecimento nº #{@ordem_de_compra.numero} - #{@configuracao.nome_da_prefeitura}")
	end

	def autorizacao_de_pagamentos(liqudacoes_ids)
		@token = BCrypt::Password.create('pagamento_externo')

		liqudacoes_ids.each do |liquidacao_id|
			Token.create(chave: @token, data_limite: Date.today + 2.day, modulo_type: 'Contabilidade::Liquidacao', modulo_id: liquidacao_id)
		end

		email = Configuracao.last.email_principal_da_autorizacao || Configuracao.last.email_secundario_da_autorizacao
		mail(to: email, subject: 'Autorização de pagamento') if email.present?
	end

	def arquivo_tcm_processado(lote, email)
		mail(to: email, subject: "Finalizado o processamento do Lote #{lote.id}.")
	end

	def envia_lista_de_sub_elementos_sem_vinculos(titulo, conteudo, email_de_destino, anexo_path = nil)
		@titulo = titulo
		@conteudo = conteudo
		@email_de_destino = email_de_destino

		attachments['subs_sem_vinculo.xlsx'] = File.read(anexo_path) if anexo_path.present?
		mail(to: @email_de_destino, subject: @titulo)
	end

	def envia_email_teste(titulo, conteudo, email_de_destino, anexo_path = nil)
		@titulo = titulo
		@conteudo = conteudo
		@email_de_destino = email_de_destino
		attachments['email_teste.txt'] = File.read(anexo_path) if anexo_path.present?
		mail(to: @email_de_destino, subject: @titulo)
	end
end
