3
const lojaRef=db.ref("loja");
const vendasRef=db.ref("vendas");
let modoAdmin=false, editando=null, imagemProduto="", bannerImagem="", carrinho=[];
let listaProdutos=[];
const SENHA_ADMIN="1234";
let WHATSAPP_SALVO="";
let LOJA_ABERTA=true;
function alternarModo(){
if(!modoAdmin && prompt("Senha:")!==SENHA_ADMIN) return;
modoAdmin=!modoAdmin;
painel.style.display=modoAdmin?"block":"none";
modoTexto.innerText=modoAdmin?"Modo Administrativo":"Modo Cliente";
filtrarProdutos();
}
/* STATUS */
function salvarStatus(){ lojaRef.child("status").set(statusSelect.value); }
lojaRef.child("status").on("value",s=>{
if(!s.exists()) return;
LOJA_ABERTA = s.val()==="aberta";
statusSelect.value=s.val();
statusAviso.style.display = LOJA_ABERTA?"none":"block";
filtrarProdutos();
});
/* NOME */
function salvarNomeLoja(){ lojaRef.child("nome").set(nomeLojaInput.value); }
lojaRef.child("nome").on("value",s=>{
if(s.exists()){ nomeLojaTexto.innerText=s.val(); nomeLojaInput.value=s.val(); }
});
/* BANNER */
function lerBanner(i){
const r=new FileReader();
r.onload=()=>bannerImagem=r.result;
r.readAsDataURL(i.files[0]);
}
function salvarBanner(){
if(!bannerImagem){alert("Escolha uma imagem");return;}
lojaRef.child("banner").set(bannerImagem);
}
lojaRef.child("banner").on("value",s=>{
if(s.exists()) banner.innerHTML='
';
});
/* CORES */
function aplicarCores(c){
if(!c) return;
document.documentElement.style.setProperty("--primary-color",c.primary||"#111");
document.documentElement.style.setProperty("--bg-card",c.card||"#fff");
document.documentElement.style.setProperty("--bg-body",c.body||"#f2f2f2");
document.documentElement.style.setProperty("--text-color",c.text||"#000");
corPrimaria.value=corPrimariaTxt.value=c.primary;
corCard.value=corCardTxt.value=c.card;
corBody.value=corBodyTxt.value=c.body;
corTexto.value=corTextoTxt.value=c.text;
}
lojaRef.child("cores").on("value",s=>{
if(s.exists()) aplicarCores(s.val());
});
function salvarCores(){
lojaRef.child("cores").set({
primary:corPrimaria.value,
card:corCard.value,
body:corBody.value,
text:corTexto.value
});
}
/* WHATS */
function salvarWhats(){ lojaRef.child("whatsapp").set(whatsInput.value); }
lojaRef.child("whatsapp").on("value",s=>{
if(s.exists()){
WHATSAPP_SALVO=s.val();
whatsInput.value=s.val();
}
});
/* PRODUTOS */
produtosRef.on("value",snap=>{
listaProdutos=[];
snap.forEach(i=>{
const val=i.val();
val.id=i.key;
listaProdutos.push(val);
});
filtrarProdutos();
});
function renderProdutos(lista){
produtos.innerHTML="";
lista.forEach(function(p){
const estoqueAtual=p.estoque||0;
const precoNum=Number(p.preco||0);
const bloqueado = (!LOJA_ABERTA || estoqueAtual<=0);
produtos.innerHTML+=`
`;
});
}
function filtrarProdutos(){
const termo=(buscaInput.value||"").toLowerCase();
renderProdutos(listaProdutos.filter(p=>{
return (p.titulo||"").toLowerCase().includes(termo) ||
(p.descricao||"").toLowerCase().includes(termo);
}));
}
function lerImagemProduto(i){
const r=new FileReader();
r.onload=()=>imagemProduto=r.result;
r.readAsDataURL(i.files[0]);
}
function salvarProduto(){
const p={
titulo:titulo.value,
descricao:descricao.value,
preco:Number(preco.value||0),
imagem:imagemProduto,
estoque:Number(estoque.value||0)
};
if(editando){produtosRef.child(editando).set(p);}
else{produtosRef.push(p);}
cancelarEdicao();
}
function editarProduto(id){
produtosRef.child(id).once("value").then(s=>{
const p=s.val();
titulo.value=p.titulo;
descricao.value=p.descricao;
preco.value=p.preco;
estoque.value=p.estoque||0;
imagemProduto=p.imagem;
editando=id;
});
}
function removerProduto(id){
if(confirm("Remover?")) produtosRef.child(id).remove();
${p.titulo||""}
${p.descricao||""}
R$ ${precoNum.toFixed(2)}
Estoque: ${estoqueAtual}
Comentários
Postar um comentário