(function (){
if(!window.BDMChatPages) window.BDMChatPages={};
window.BDMChatPages.chat=function (ctx){
ctx.state.currentView="chat";
var p=ctx.cache.chatData
? Promise.resolve(ctx.cache.chatData)
: fetch(ctx.urls.bootstrap, { credentials: "same-origin" }).then(function (r){ return r.json(); });
p.then(function (data){
ctx.cache.chatData=data;
if(ctx.title&&data&&data.motel&&data.motel.nome) ctx.title.textContent=data.motel.nome;
var items=(data&&data.bot&&data.bot.items) ? data.bot.items:[];
ctx.body.innerHTML="";
var q=ctx.findFirstQuestion(items);
if(!q){
ctx.body.appendChild(ctx.el("div", { class: "bdm-msg -bot", text: "Chat não configurado para este motel." }));
return;
}
function renderQuestion(question){
ctx.body.appendChild(ctx.el("div", { class: "bdm-msg -bot" }, [ctx.safeText(question.texto||"")]));
var opts=ctx.findOptions(items, question.id);
if(!opts.length) return;
var wrap=ctx.el("div", { class: "bdm-options" });
opts.forEach(function (opt){
var b=ctx.el("button", { class: "bdm-option", type: "button" }, [ctx.safeText(opt.texto||"")]);
b.addEventListener("click", function (){
ctx.body.appendChild(ctx.el("div", { class: "bdm-msg -user" }, [ctx.safeText(opt.texto||"")]));
var next=ctx.findNextQuestion(items, opt.id);
if(!next){
ctx.body.appendChild(ctx.el("div", { class: "bdm-msg -bot", text: "Finalizado." }));
ctx.body.scrollTop=ctx.body.scrollHeight;
wrap.remove();
return;
}
wrap.remove();
renderQuestion(next);
ctx.body.scrollTop=ctx.body.scrollHeight;
});
wrap.appendChild(b);
});
ctx.body.appendChild(wrap);
ctx.body.scrollTop=ctx.body.scrollHeight;
}
renderQuestion(q);
}).catch(function (){
ctx.body.textContent="Falha ao carregar dados do chat.";
});
};})();