package especificos

import (
	"context"

	"gitlab.com/sistema-pro/xmlcolibex/internal/regras"
)

func aplicarZap(ctx context.Context, p Params) {
	m := p.M
	im := p.Im
	feed := p.Feed

	m["subtipo"] = im.Subtipo
	m["tipo"] = im.NomeCategoria
	m["banheiro"] = regras.BanheiroZap(im.Banheiros)
	m["valor_venda"] = regras.TipoPrecoSimples(im.ValorVenda)
	m["valor_locacao"] = regras.TipoPrecoSimples(im.ValorLocacao)

	hacks := regras.AplicarHacksMasterZap(im.IDMaster, im.RefCaixa, im.ValorIPTU, im.ValorCondominio, im.AnoConstrucao, im.Video)
	m["iptu"] = hacks.IPTU
	m["valor_iptu"] = hacks.IPTU
	m["valor_condominio"] = hacks.ValorCondominio
	if hacks.Video != "" {
		m["video"] = hacks.Video
	}
	if hacks.AnoConstrucao != "" {
		m["ano_construcao"] = hacks.AnoConstrucao
	}
	if hacks.ViewEndereco != nil {
		feed.ViewEndereco = *hacks.ViewEndereco
		m["endereco"] = regras.EnderecoOculto(feed.ViewEndereco, im.Endereco)
		m["numero"] = regras.EnderecoOculto(feed.ViewEndereco, im.Numero)
		m["complemento"] = regras.EnderecoOculto(feed.ViewEndereco, im.Complemento)
	}

	if p.ZapLoader != nil {
		feats, err := p.ZapLoader.CarregarFeaturesZap(ctx, im.ServicosDisponiveis)
		if err == nil {
			m["servicos_new"] = regras.MontarCaracteristicasZapXML(feats)
		}
	}
}
