// mb-data2.jsx — store types, extra providers, services, catalogs, Novo Lar & Serviços do Lar // Store types: "venda" (cart/delivery), "agenda" (booking), "vitrine" (showcase only) PARTNERS.forEach(p => { if (!p.type) p.type = "venda"; }); (partnerById("bela") || {}).type = "agenda"; (partnerById("academia") || {}).type = "agenda"; // helper to build a provider object compactly function mk(o) { return Object.assign({ rating: 4.7, reviews: 120, cashback: 0, turbo: 0, dist: 3.0, fee: 0, free: 0, time: "Agendar", delivery: false, pickup: true, price: "$$", open: true, tags: [], color: "#1E63C8", x: 50, y: 50, hub: true, }, o); } // Visible in marketplace (added to PARTNERS): an imobiliária showcase PARTNERS.push(mk({ id: "larideal", name: "Lar Ideal Imóveis", seg: "morar", cat: "Imobiliárias", type: "vitrine", region: "Aracaju", area: "Jardins", rating: 4.8, reviews: 215, time: "Divulgação", color: "#2A57A8", x: 44, y: 44, hub: false, tags: ["Divulgação"], blurb: "Apartamentos e casas à venda em Aracaju.", })); // Hub-only providers (reachable via Novo Lar / Serviços do Lar) const EXTRA = [ // ── Novo Lar ── mk({ id: "terranova", name: "Terra Nova Loteamentos", seg: "morar", cat: "Terrenos", type: "vitrine", area: "Zona de Expansão", region: "Zona de Expansão", color: "#1E7D4F", blurb: "Lotes e terrenos em condomínios planejados." }), mk({ id: "construmar", name: "Construtora Mar Azul", seg: "morar", cat: "Lançamentos", type: "vitrine", area: "Atalaia", color: "#2A57A8", blurb: "Lançamentos na orla, da planta à entrega." }), mk({ id: "mudancas", name: "Sergipe Mudanças", seg: "morar", cat: "Mudanças", type: "agenda", area: "Aracaju", color: "#C98A1B", cashback: 6, blurb: "Mudança residencial com equipe e içamento." }), mk({ id: "arqbianca", name: "Arq. Bianca Studio", seg: "morar", cat: "Arquitetura", type: "agenda", area: "Grageru", color: "#C2367E", cashback: 5, blurb: "Projetos de interiores e arquitetura." }), mk({ id: "reformaja", name: "Reforma Já", seg: "morar", cat: "Reformas", type: "agenda", area: "Aracaju", color: "#8A6A3B", cashback: 7, turbo: 4, blurb: "Reformas, pintura e pequenos reparos." }), mk({ id: "casabela", name: "Casa Bela Móveis", seg: "morar", cat: "Móveis", type: "venda", area: "Coroa do Meio", color: "#7A3FB0", cashback: 8, turbo: 5, delivery: true, fee: 0, free: 0, time: "3–7 dias", price: "$$$", blurb: "Móveis planejados e soltos para seu lar." }), mk({ id: "ateliedecor", name: "Ateliê Decor", seg: "morar", cat: "Decoração", type: "venda", area: "Treze de Julho", color: "#C2367E", cashback: 10, turbo: 0, delivery: true, fee: 12.9, free: 150, time: "30–50 min", blurb: "Objetos, quadros e enxoval para decorar." }), mk({ id: "eletrolar", name: "Eletro Lar", seg: "morar", cat: "Eletrodomésticos", type: "venda", area: "Centro", color: "#1E63C8", cashback: 5, turbo: 6, delivery: true, fee: 0, free: 0, time: "2–5 dias", price: "$$$", blurb: "Eletro e linha branca com entrega." }), // ── Serviços do Lar (agendados) ── mk({ id: "limpalar", name: "Limpa Lar", seg: "lar", cat: "Limpeza", type: "agenda", area: "Aracaju", color: "#0E9FB0", cashback: 8, turbo: 5, rating: 4.9, reviews: 540, blurb: "Diaristas e faxina profissional." }), mk({ id: "chaveja", name: "ChaveJá Chaveiro", seg: "lar", cat: "Chaveiro", type: "agenda", area: "Aracaju", color: "#C98A1B", cashback: 6, rating: 4.8, reviews: 320, time: "24h", blurb: "Chaveiro 24h e abertura de portas." }), mk({ id: "piscinaclean", name: "Piscina Clean", seg: "lar", cat: "Piscineiro", type: "agenda", area: "Atalaia", color: "#1E9AD6", cashback: 7, rating: 4.7, reviews: 180, blurb: "Limpeza e tratamento de piscinas." }), mk({ id: "eletrofix", name: "EletroFix", seg: "lar", cat: "Elétrica", type: "agenda", area: "Grageru", color: "#E8552D", cashback: 6, turbo: 4, rating: 4.8, reviews: 410, blurb: "Manutenção e instalação elétrica." }), mk({ id: "encanase", name: "EncanaSE", seg: "lar", cat: "Encanador", type: "agenda", area: "Farolândia", color: "#0E7C86", cashback: 6, rating: 4.6, reviews: 260, blurb: "Reparos hidráulicos e desentupimento." }), mk({ id: "coolar", name: "Cool Ar Climatização", seg: "lar", cat: "Ar-condicionado", type: "agenda", area: "Jardins", color: "#1E63C8", cashback: 9, turbo: 5, rating: 4.9, reviews: 300, blurb: "Instalação e limpeza de ar-condicionado." }), mk({ id: "jardimvivo", name: "Jardim Vivo", seg: "lar", cat: "Jardinagem", type: "agenda", area: "Aruana", color: "#1E7D4F", cashback: 7, rating: 4.7, reviews: 140, blurb: "Jardinagem, poda e paisagismo." }), mk({ id: "dedetse", name: "DedetSE", seg: "lar", cat: "Dedetização", type: "agenda", area: "Aracaju", color: "#8A6A3B", cashback: 6, rating: 4.6, reviews: 190, blurb: "Dedetização e controle de pragas." }), ]; // Combined lookup (overrides the original) const ALLP = () => PARTNERS.concat(EXTRA); window.partnerById = (id) => ALLP().find(p => p.id === id); // ── Services (agenda) ──────────────────────────────────────── const SERVICES = { bela: [ { id: "s1", name: "Corte + Escova", desc: "Corte feminino com finalização", price: 90, dur: "1h" }, { id: "s2", name: "Coloração", desc: "Tintura completa com tratamento", price: 180, dur: "2h" }, { id: "s3", name: "Manicure & Pedicure", desc: "Mãos e pés", price: 65, dur: "1h10" }, { id: "s4", name: "Dia da noiva", desc: "Pacote completo", price: null, dur: "—" }, ], limpalar: [ { id: "s1", name: "Faxina padrão", desc: "Até 2 quartos · 4h de serviço", price: 140, dur: "4h" }, { id: "s2", name: "Faxina pesada", desc: "Pós-obra ou pós-festa", price: 220, dur: "6h" }, { id: "s3", name: "Diarista mensal", desc: "1x por semana no mês", price: null, dur: "Plano" }, ], eletrofix: [ { id: "s1", name: "Visita técnica", desc: "Diagnóstico no local", price: 80, dur: "40min" }, { id: "s2", name: "Instalação de tomadas/luminárias", desc: "Mão de obra", price: 150, dur: "1–2h" }, { id: "s3", name: "Troca de quadro/disjuntores", desc: "Orçamento na visita", price: null, dur: "—" }, ], coolar: [ { id: "s1", name: "Limpeza de split", desc: "Higienização completa", price: 130, dur: "1h" }, { id: "s2", name: "Instalação de split", desc: "Até 12.000 BTUs", price: 350, dur: "2–3h" }, { id: "s3", name: "Recarga de gás", desc: "Orçamento na visita", price: null, dur: "—" }, ], reformaja: [ { id: "s1", name: "Pintura de ambiente", desc: "Por cômodo, material à parte", price: 280, dur: "1 dia" }, { id: "s2", name: "Pequenos reparos", desc: "Lista de tarefas (bate-pronto)", price: 160, dur: "Meio dia" }, { id: "s3", name: "Reforma completa", desc: "Visita + projeto + orçamento", price: null, dur: "—" }, ], }; const svcCat = (cat) => ({ Limpeza: "Faxina", Chaveiro: "Atendimento", Piscineiro: "Tratamento", Elétrica: "Serviço elétrico", Encanador: "Serviço hidráulico", "Ar-condicionado": "Atendimento", Jardinagem: "Serviço de jardim", Dedetização: "Aplicação", Mudanças: "Mudança", Arquitetura: "Consultoria", Reformas: "Serviço", }[cat] || "Serviço"); function genericServices(p) { return [ { id: "g1", name: svcCat(p.cat) + " · visita", desc: "Avaliação no local e orçamento sem compromisso.", price: 80, dur: "40min" }, { id: "g2", name: svcCat(p.cat) + " padrão", desc: "Serviço completo com profissional verificado.", price: 160, dur: "1–2h" }, { id: "g3", name: "Pacote sob medida", desc: "Combine o escopo direto com o prestador.", price: null, dur: "—" }, ]; } const servicesFor = (p) => SERVICES[p.id] || genericServices(p); // ── Catalogs (vitrine) ─────────────────────────────────────── const CATALOG = { larideal: [ { id: "c1", title: "Apto 3 quartos · Jardins", desc: "Suíte, varanda gourmet, 2 vagas. Pronto para morar.", priceLabel: "R$ 690.000", specs: [["home", "98 m²"], ["pin", "Jardins"]], img: "apartamento" }, { id: "c2", title: "Casa 4 quartos · Atalaia", desc: "Condomínio fechado, piscina, área de lazer.", priceLabel: "R$ 1.250.000", specs: [["home", "210 m²"], ["pin", "Atalaia"]], img: "casa" }, { id: "c3", title: "Apto 2 quartos · Coroa do Meio", desc: "Vista mar, lazer completo, financiável.", priceLabel: "R$ 520.000", specs: [["home", "64 m²"], ["pin", "Coroa do Meio"]], img: "apartamento" }, ], terranova: [ { id: "c1", title: "Lote 200 m² · Condomínio Mar", desc: "Infraestrutura completa, entrada + parcelas.", priceLabel: "R$ 180.000", specs: [["home", "200 m²"], ["pin", "Z. Expansão"]], img: "terreno" }, { id: "c2", title: "Lote 360 m² · esquina", desc: "Pronto para construir, documentação ok.", priceLabel: "R$ 290.000", specs: [["home", "360 m²"], ["pin", "Mosqueiro"]], img: "terreno" }, ], construmar: [ { id: "c1", title: "Residencial Maré · 2 e 3 quartos", desc: "Na planta, lazer no rooftop, entrega 2027.", priceLabel: "A partir de R$ 450.000", specs: [["pin", "Atalaia"], ["clock", "Entrega 2027"]], img: "lançamento" }, { id: "c2", title: "Studios Orla", desc: "Compactos para investir, alto potencial de locação.", priceLabel: "A partir de R$ 320.000", specs: [["home", "32 m²"], ["pin", "Coroa do Meio"]], img: "lançamento" }, ], }; const catalogFor = (p) => CATALOG[p.id] || []; // ── Novo Lar — stages ──────────────────────────────────────── const NOVO_LAR_STAGES = [ { id: "terreno", icon: "pin", title: "Buscando um terreno", sub: "Quero comprar um lote para construir", sections: [ { title: "Terrenos e loteamentos", ids: ["terranova"] }, { title: "Construtoras e lançamentos", ids: ["construmar"] }, { title: "Projeto e arquitetura", ids: ["arqbianca"] }, ] }, { id: "pronto", icon: "home", title: "Quero comprar pronto", sub: "Procuro um imóvel pronto para morar", sections: [ { title: "Imóveis à venda", ids: ["larideal"] }, { title: "Lançamentos", ids: ["construmar"] }, { title: "Hora de mudar", ids: ["mudancas"] }, ] }, { id: "construir", icon: "edit", title: "Vou construir ou reformar", sub: "Já tenho o espaço e quero erguer/reformar", sections: [ { title: "Materiais de construção", ids: ["casa"] }, { title: "Reformas e mão de obra", ids: ["reformaja"] }, { title: "Arquitetura e interiores", ids: ["arqbianca"] }, ] }, { id: "decorar", icon: "beauty", title: "Mobiliar e decorar", sub: "Já tenho meu lar e quero deixar do meu jeito", sections: [ { title: "Móveis", ids: ["casabela"] }, { title: "Decoração e enxoval", ids: ["ateliedecor"] }, { title: "Eletrodomésticos", ids: ["eletrolar"] }, ] }, ]; // ── Serviços do Lar — categories ───────────────────────────── const HOME_SVC = [ { id: "limpeza", label: "Limpeza", icon: "beauty", ids: ["limpalar"] }, { id: "chaveiro", label: "Chaveiro", icon: "home", ids: ["chaveja"] }, { id: "eletrica", label: "Elétrica", icon: "bolt", ids: ["eletrofix"] }, { id: "encanador", label: "Encanador", icon: "health", ids: ["encanase"] }, { id: "piscina", label: "Piscineiro", icon: "target", ids: ["piscinaclean"] }, { id: "ar", label: "Ar-cond.", icon: "info", ids: ["coolar"] }, { id: "jardim", label: "Jardinagem", icon: "fun", ids: ["jardimvivo"] }, { id: "dedet", label: "Dedetização", icon: "pet", ids: ["dedetse"] }, ]; // ── Roteiro Gastronômico — culinária ──────────────────────── const GASTRO_CUISINES = [ { id: "frutos_mar", label: "Frutos do Mar", icon: "food", color: "#0E7C86" }, { id: "churrasco", label: "Churrasco", icon: "food", color: "#E8552D" }, { id: "italiana", label: "Italiana", icon: "food", color: "#C98A1B" }, { id: "japonesa", label: "Japonesa", icon: "food", color: "#7A3FB0" }, { id: "nordestina", label: "Nordestina", icon: "food", color: "#1E7D4F" }, { id: "arabe", label: "Árabe", icon: "food", color: "#8A6A3B" }, { id: "pizzaria", label: "Pizzaria", icon: "food", color: "#C2367E" }, { id: "fast_food", label: "Fast Food", icon: "food", color: "#1E63C8" }, { id: "vegano", label: "Vegano & Veggie", icon: "food", color: "#0FA968" }, { id: "doceria", label: "Doceria & Café", icon: "food", color: "#B5751A" }, { id: "bar", label: "Bar & Petiscos", icon: "fun", color: "#4F46E5" }, { id: "sushi", label: "Sushi & Temaki", icon: "food", color: "#0E9FB0" }, ]; // Vínculos mock: culinária → IDs de parceiros const GASTRO_BY_CUISINE = { frutos_mar: ["caranguejo", "sabor"], fast_food: ["mare", "acai"], nordestina: ["sabor", "caranguejo"], doceria: ["pao", "acai"], bar: ["sabor", "caranguejo"], }; function gastroPartnersFor(cuisineId, region) { const ids = GASTRO_BY_CUISINE[cuisineId] || []; return ids.map(id => ALLP().find(p => p.id === id)).filter(Boolean) .filter(p => !region || region === "Todas" || p.region === region); } // ── User history: agendamentos & solicitações (contatos) ───── const AGENDAMENTOS = [ { id: "a1", partner: "limpalar", service: "Faxina padrão", date: "14 jun", time: "10:00", local: "domicilio", status: "Confirmado", upcoming: true }, { id: "a2", partner: "bela", service: "Corte + Escova", date: "08 jun", time: "15:00", local: "loja", status: "Concluído", rated: false }, { id: "a3", partner: "coolar", service: "Limpeza de split", date: "30 mai", time: "08:00", local: "domicilio", status: "Concluído", rated: true, stars: 5 }, ]; const LEADS = [ { id: "l1", partner: "larideal", title: "Apto 3 quartos · Jardins", date: "09 jun", status: "Aguardando retorno" }, { id: "l2", partner: "construmar", title: "Residencial Maré · 2 e 3 quartos", date: "02 jun", status: "Respondido" }, ]; const NOTIFS = [ { id: "n1", kind: "status", title: "Pedido a caminho", text: "Maré Burger saiu para entrega. Chega em ~15 min.", time: "Agora", group: "Hoje", unread: true }, { id: "n2", kind: "turbo", title: "Cashback Turbo creditado", text: "Você recebeu R$ 2,74 de Turbo na sua carteira.", time: "1 h", group: "Hoje", unread: true }, { id: "n3", kind: "agenda", title: "Agendamento confirmado", text: "Limpa Lar confirmou sua faxina para 14 jun às 10:00.", time: "3 h", group: "Hoje", unread: true }, { id: "n4", kind: "promo", title: "Cashback Turbo da semana", text: "Lojas turbinaram o cashback. Até 13% de volta!", time: "Ontem", group: "Esta semana", unread: false }, { id: "n5", kind: "novolar", title: "Novidade no Novo Lar", text: "Novos lançamentos na orla de Atalaia para você.", time: "2 d", group: "Esta semana", unread: false }, { id: "n6", kind: "cashback", title: "Saldo liberado", text: "R$ 3,20 de cashback agora está disponível para usar.", time: "3 d", group: "Esta semana", unread: false }, { id: "n7", kind: "lead", title: "A imobiliária respondeu", text: "Lar Ideal Imóveis retornou seu interesse no Apto 3 quartos.", time: "4 d", group: "Esta semana", unread: false }, ]; Object.assign(window, { EXTRA, ALLP, SERVICES, servicesFor, CATALOG, catalogFor, NOVO_LAR_STAGES, HOME_SVC, svcCat, GASTRO_CUISINES, GASTRO_BY_CUISINE, gastroPartnersFor, AGENDAMENTOS, LEADS, NOTIFS });