/* global window */ // Mock data for the remaining screens. const TEMPLATE = [ // 7 days x 5 slots (Mon..Sun) — same shape as planning [{ name: 'Avena + plátano', rac: 2 }, { name: 'Lentejas con verdura', rac: 2, loose: [{ name: 'Pan', qty: 1, unit: 'ud' }] }, { name: 'Yogur + fruta', rac: 2 }, null, { name: 'Sopa miso', rac: 1 }], [{ name: 'Tostada aguacate', rac: 2 }, { name: 'Pasta al pesto', rac: 2 }, null, { name: 'Bocadillo pavo', rac: 1 }, { name: 'Arroz wok', rac: 1 }], [{ name: 'Smoothie verde', rac: 2 }, { name: 'Arroz con pollo', rac: 2 }, { name: 'Fruta + queso', rac: 2 }, { name: 'Crema verduras', rac: 1 }, { name: 'Pizza casera', rac: 1 }], [{ name: 'Café + tostada', rac: 2 }, { name: 'Garbanzos curry', rac: 2 }, null, null, { name: 'Wok tofu', rac: 1 }], [{ name: 'Tortitas avena', rac: 2 }, { name: 'Hamburguesa casera', rac: 2 }, { name: 'Hummus + crudités', rac: 2 }, { name: 'Quesadilla', rac: 1 }, { name: 'Pad thai', rac: 1 }], [null, { name: 'Paella mixta', rac: 4 }, { name: 'Café + bizcocho', rac: 2 }, { name: 'Tabla de quesos', rac: 2 }, null], [{ name: 'Brunch huevos', rac: 2 }, { name: 'Asado de domingo', rac: 4 }, null, { name: 'Sobras', rac: 2 }, { name: 'Sobras', rac: 2 }], ]; const ARTICLES = [ { name: 'Lentejas pardinas', supermarket: 'Mercadona', unit: '500 g', envase: 1, stock: 0.5, min: 2, manualShop: false, variable: false, lastPrice: 1.45 }, { name: 'Aceite oliva virgen extra', supermarket: 'Mercadona', unit: '1 L', envase: 1, stock: 1.0, min: 2, manualShop: true, variable: false, lastPrice: 7.85 }, { name: 'Tomate triturado', supermarket: 'Lidl', unit: '400 g', envase: 1, stock: 4, min: 4, manualShop: false, variable: false, lastPrice: 0.79 }, { name: 'Pasta penne', supermarket: 'Lidl', unit: '500 g', envase: 1, stock: 1, min: 2, manualShop: false, variable: false, lastPrice: 0.95 }, { name: 'Tofu firme', supermarket: 'Lidl', unit: '250 g', envase: 1, stock: 0, min: 1, manualShop: false, variable: false, lastPrice: 1.65 }, { name: 'Huevos camperos M', supermarket: 'Mercadona', unit: 'docena', envase: 1, stock: 0.5, min: 1, manualShop: false, variable: false, lastPrice: 2.95 }, { name: 'Plátano canario', supermarket: 'Mercadona', unit: 'kg', envase: 1, stock: 1.4, min: 1, manualShop: false, variable: true, lastPrice: 1.85 }, { name: 'Cebolla', supermarket: 'Mercadona', unit: 'kg', envase: 1, stock: 0.3, min: 1, manualShop: false, variable: true, lastPrice: 0.86 }, { name: 'Atún en lata pack 3', supermarket: 'Carrefour', unit: 'pack', envase: 3, stock: 2, min: 3, manualShop: false, variable: false, lastPrice: 2.20 }, { name: 'Yogur natural pack 4', supermarket: 'Mercadona', unit: 'pack', envase: 4, stock: 1, min: 2, manualShop: false, variable: false, lastPrice: 1.50 }, { name: 'Salsa soja Kikkoman', supermarket: 'Carrefour', unit: '250 ml', envase: 1, stock: 1, min: 1, manualShop: false, variable: false, lastPrice: 3.45 }, { name: 'Pan integral 500g', supermarket: 'Mercadona', unit: '500 g', envase: 1, stock: 2, min: 2, manualShop: true, variable: false, lastPrice: 1.65 }, ]; const EXPENSES = [ { date: '14 may', place: 'Mercadona', cat: 'Supermercado', payment: 'tarjeta', amount: 47.85, who: 'Rut', details: 'Compra semanal', ticket: true }, { date: '14 may', place: 'Bar Pepe', cat: 'Restauración', payment: 'efectivo', amount: 14.50, who: 'Patrick', details: 'Comida menú', ticket: false }, { date: '13 may', place: 'Metro', cat: 'Transporte', payment: 'tarjeta', amount: 12.80, who: 'Rut', details: 'Bono 10', ticket: false }, { date: '12 may', place: 'Lidl', cat: 'Supermercado', payment: 'tarjeta', amount: 23.40, who: 'Rut', details: 'Verduras + bebidas', ticket: true }, { date: '11 may', place: 'Farmacia Centro', cat: 'Salud', payment: 'efectivo', amount: 18.20, who: 'Patrick', details: 'Ibuprofeno + tiritas', ticket: false }, { date: '10 may', place: 'Mercadona', cat: 'Supermercado', payment: 'tarjeta', amount: 62.10, who: 'Rut', details: 'Compra grande', ticket: true }, { date: '09 may', place: 'Cine Yelmo', cat: 'Ocio', payment: 'tarjeta', amount: 24.00, who: 'Patrick', details: '2 entradas', ticket: false }, { date: '08 may', place: 'Bar Pepe', cat: 'Restauración', payment: 'efectivo', amount: 32.50, who: 'Rut', details: 'Cena viernes', ticket: false }, { date: '07 may', place: 'Endesa', cat: 'Hogar', payment: 'tarjeta', amount: 78.40, who: 'Patrick', details: 'Factura luz abril', ticket: false }, { date: '06 may', place: 'Carrefour', cat: 'Supermercado', payment: 'tarjeta', amount: 41.20, who: 'Rut', details: 'Limpieza + bazar', ticket: true }, ]; const PENDING_TICKETS = [ { id: 'q-031', supermarket: 'Mercadona', date: '14 may · 19:42', total: 47.85, items: 14, tone: 'mint' }, { id: 'q-030', supermarket: 'Lidl', date: '12 may · 11:08', total: 23.40, items: 8, tone: 'yellow' }, ]; const MONTHS = [ { mes: 'Ene', total: 1180, topCat: 'Supermercado', topPlace: 'Mercadona', tickets: 18 }, { mes: 'Feb', total: 1042, topCat: 'Hogar', topPlace: 'Endesa', tickets: 14 }, { mes: 'Mar', total: 1356, topCat: 'Supermercado', topPlace: 'Mercadona', tickets: 22 }, { mes: 'Abr', total: 1360, topCat: 'Supermercado', topPlace: 'Mercadona', tickets: 19 }, { mes: 'May', total: 1248, topCat: 'Supermercado', topPlace: 'Mercadona', tickets: 23, current: true }, { mes: 'Jun', total: 0, projected: true }, { mes: 'Jul', total: 0, projected: true }, { mes: 'Ago', total: 0, projected: true }, { mes: 'Sep', total: 0, projected: true }, { mes: 'Oct', total: 0, projected: true }, { mes: 'Nov', total: 0, projected: true }, { mes: 'Dic', total: 0, projected: true }, ]; const ALIASES = [ { id: 1, raw: 'L. PARDINAS 500G', canonical: 'Lentejas pardinas', market: 'Mercadona', status: 'canonical', confirms: 4 }, { id: 2, raw: 'AOVE COOSUR 1L', canonical: 'Aceite oliva virgen extra', market: 'Mercadona', status: 'canonical', confirms: 6 }, { id: 3, raw: 'TOM.TRIT.HACENDADO', canonical: 'Tomate triturado', market: 'Mercadona', status: 'canonical', confirms: 5 }, { id: 4, raw: 'PASTA PENNE 500', canonical: 'Pasta penne', market: 'Lidl', status: 'proposed', confirms: 2 }, { id: 5, raw: 'TOFU FIRME BIO', canonical: 'Tofu firme', market: 'Lidl', status: 'proposed', confirms: 1 }, { id: 6, raw: 'HUEVOS L CAMPERO', canonical: 'Huevos camperos M', market: 'Mercadona', status: 'proposed', confirms: 2, scope: 'mio' }, { id: 7, raw: 'PLATANO CANARIO', canonical: 'Plátano canario', market: 'Mercadona', status: 'canonical', confirms: 8 }, { id: 8, raw: 'YOG. NAT. PACK4', canonical: 'Yogur natural pack 4', market: 'Mercadona', status: 'canonical', confirms: 3 }, { id: 9, raw: 'KIKKOMAN SOJA 250', canonical: 'Salsa soja Kikkoman', market: 'Carrefour', status: 'proposed', confirms: 0, scope: 'mio' }, { id: 10, raw: 'PAN INT.500', canonical: 'Pan integral 500g', market: 'Mercadona', status: 'canonical', confirms: 7 }, ]; const CATEGORIES = [ { id: 1, name: 'Supermercado', icon: '⌗', color: '#3cffd0', budget: 550 }, { id: 2, name: 'Restauración', icon: '◆', color: '#5200ff', budget: 220 }, { id: 3, name: 'Transporte', icon: '▶', color: '#f3e600', budget: 150 }, { id: 4, name: 'Hogar', icon: '◧', color: '#ff7ad9', budget: 280 }, { id: 5, name: 'Ocio', icon: '✦', color: '#ff6a1a', budget: 120 }, { id: 6, name: 'Salud', icon: '+', color: '#2864ff', budget: 80 }, ]; const PLACES = [ { id: 1, name: 'Mercadona', cat: 'Supermercado', pay: 'tarjeta', visits: 9 }, { id: 2, name: 'Lidl', cat: 'Supermercado', pay: 'tarjeta', visits: 4 }, { id: 3, name: 'Carrefour', cat: 'Supermercado', pay: 'tarjeta', visits: 2 }, { id: 4, name: 'Bar Pepe', cat: 'Restauración', pay: 'efectivo', visits: 6 }, { id: 5, name: 'Cine Yelmo', cat: 'Ocio', pay: 'tarjeta', visits: 1 }, { id: 6, name: 'Farmacia Centro', cat: 'Salud', pay: 'efectivo', visits: 2 }, { id: 7, name: 'Endesa', cat: 'Hogar', pay: 'tarjeta', visits: 1 }, { id: 8, name: 'Metro', cat: 'Transporte', pay: 'tarjeta', visits: 8 }, ]; const UNIT_MAPS = [ { id: 1, product: 'Aceite oliva virgen extra', ticketUnit: '1 L', packQty: 1, recipeUnit: '1 ml', factor: 1000 }, { id: 2, product: 'Lentejas pardinas', ticketUnit: '500 g', packQty: 500, recipeUnit: '1 g', factor: 1 }, { id: 3, product: 'Huevos camperos M', ticketUnit: 'docena', packQty: 12, recipeUnit: '1 ud', factor: 1 }, { id: 4, product: 'Yogur natural pack 4', ticketUnit: 'pack', packQty: 4, recipeUnit: '125 g', factor: 125 }, { id: 5, product: 'Salsa soja Kikkoman', ticketUnit: '250 ml', packQty: 250, recipeUnit: '1 ml', factor: 1 }, { id: 6, product: 'Plátano canario', ticketUnit: 'kg', packQty: 1, recipeUnit: '1 g', factor: 1000 }, { id: 7, product: 'Pasta penne', ticketUnit: '500 g', packQty: 500, recipeUnit: '1 g', factor: 1 }, ]; const INVITES = [ { id: 'inv-AB12CD', email: 'maria@example.com', status: 'active', created: '12 may 2026', expires: '19 may 2026' }, { id: 'inv-7F8G9H', email: '—', status: 'active', created: '08 may 2026', expires: '15 may 2026' }, { id: 'inv-XK4L5M', email: 'pedro@example.com', status: 'used', created: '01 may 2026', expires: '08 may 2026', usedBy: 'pedro@example.com', usedAt: '03 may' }, { id: 'inv-3R2S1T', email: 'lucia@example.com', status: 'expired', created: '12 abr 2026', expires: '19 abr 2026' }, { id: 'inv-NP9Q8U', email: '—', status: 'used', created: '02 abr 2026', expires: '09 abr 2026', usedBy: 'jordi@example.com', usedAt: '04 abr' }, ]; const GEMINI_USAGE = { monthIn: 142_300, monthOut: 38_900, callsMonth: 23, costMonth: 0.84, households: 1, }; Object.assign(window.RC_DATA, { TEMPLATE, ARTICLES, EXPENSES, PENDING_TICKETS, MONTHS, ALIASES, CATEGORIES, PLACES, UNIT_MAPS, INVITES, GEMINI_USAGE, });