const defaultParList = [
{ type: 'category', name: 'CUT FRUIT' },
{ type: 'item', item: 'Limes', par: 0, size: 'wedges', onHand: 0 },
{ type: 'item', item: 'Lemons', par: 0, size: 'wedges', onHand: 0 },
{ type: 'item', item: 'Oranges', par: 0, size: 'wheels', onHand: 0 },
{ type: 'category', name: 'BATCH DRINKS' },
{ type: 'item', item: 'Margarita Batch', par: 0, size: 'quarts', onHand: 0 },
{ type: 'item', item: 'Bloody Mary Mix', par: 0, size: 'quarts', onHand: 0 },
{ type: 'item', item: 'Simple Syrup', par: 0, size: 'bottles', onHand: 0 },
{ type: 'category', name: 'GARNISH & MISC' },
{ type: 'item', item: 'Cocktail Cherries', par: 0, size: 'jars', onHand: 0 },
{ type: 'item', item: 'Olives', par: 0, size: 'jars', onHand: 0 },
{ type: 'item', item: 'Jalapeรฑos', par: 0, size: 'jars', onHand: 0 },
];
let currentParList = [];
let isEditMode = false;
function checkAdminAccess() {
const hasAdminAccess = canEdit('bar');
document.getElementById('edit-btn').style.display = hasAdminAccess ? '' : 'none';
}
window.addEventListener('auth-state-changed', checkAdminAccess);
setTimeout(() => { checkAdminAccess(); }, 500);
setTimeout(() => { checkAdminAccess(); }, 1500);
setTimeout(() => { checkAdminAccess(); }, 3000);
window.addEventListener('storage', checkAdminAccess);
const STORAGE_KEY = 'wcp-bar-par-list';
function saveToLocalStorage() {
try { localStorage.setItem(STORAGE_KEY, JSON.stringify(currentParList)); } catch(e) {}
}
function loadFromLocalStorage() {
try { const s = localStorage.getItem(STORAGE_KEY); return s ? JSON.parse(s) : null; } catch(e) { return null; }
}
function clearLocalStorage() {
try { localStorage.removeItem(STORAGE_KEY); } catch(e) {}
}
async function loadParList() {
try {
const snap = await getDoc(doc(db, PAR_LIST_DOC));
if (snap.exists() && Array.isArray(snap.data().items)) {
currentParList = snap.data().items;
} else {
currentParList = [...defaultParList];
}
} catch (err) {
currentParList = [...defaultParList];
}
const saved = loadFromLocalStorage();
if (saved) currentParList = saved;
renderTable();
}
function renderTable() {
const tbody = document.getElementById('par-tbody');
tbody.innerHTML = "";
document.getElementById('delete-col-header').style.display = isEditMode ? '' : 'none';
document.getElementById('move-col-header').style.display = isEditMode ? '' : 'none';
currentParList.forEach((row, i) => {
const tr = document.createElement('tr');
tr.setAttribute('data-index', i);
if (!row.type) {
row.type = row.name && !row.item ? 'category' : 'item';
}
if (row.type === 'category') {
tr.className = "category-row";
if (isEditMode) {
tr.innerHTML = `