Add placeholder pickup locations per stand

STAND_LOCATIONS map in server.js keyed by menu item name; every order
now carries a 'where to find it' line (PLACEHOLDER — edit when the site
map is final). Staff can override per order when marking ready.
This commit is contained in:
avi 2026-09-28 15:31:38 -05:00
commit a4b56a8dc9

View file

@ -24,6 +24,28 @@ const STAFF_PASSCODE = process.env['ST'+'AFF_PASSCODE'] || '';
// Each menu item is its own stand; mixed orders consolidate at Kitchen 484.
const DEFAULT_STAND = 'Kitchen 484';
const DEFAULT_LOCATION = 'Center of camp, by the big solar dish';
// PLACEHOLDER stand locations — edit these when the site map is final.
// Keyed by menu item name; orders for that item show this text wherever
// the app says where to pick up (success screen, orders view, staff board).
const STAND_LOCATIONS = {
'Coffee Station': 'PLACEHOLDER — east path, next to the water station',
'Sweets Cart': 'PLACEHOLDER — north gate, under the yellow canopy',
'Taco Stand': 'PLACEHOLDER — main lawn, food row #1',
'BBQ Pit': 'PLACEHOLDER — downwind corner behind the wood pile',
'Chicken Grill': 'PLACEHOLDER — main lawn, food row #2',
'Pasta Bar': 'PLACEHOLDER — west tent, near the stage',
'Drinks': 'PLACEHOLDER — center of camp, big cooler',
'Garden Burgers': 'PLACEHOLDER — main lawn, food row #2',
'Grill 484': 'PLACEHOLDER — center of camp, by the big solar dish',
'Ramen Tent': 'PLACEHOLDER — south tent, steam visible from path',
'Flatbread Oven': 'PLACEHOLDER — east tent, smell the bread',
'Dumpling Bar': 'PLACEHOLDER — west tent, next to Pasta Bar',
'Farewell Feast · BBQ': 'PLACEHOLDER — main lawn, long tables',
};
function locationFor(stand) {
return STAND_LOCATIONS[stand] || STAND_LOCATIONS[DEFAULT_STAND] || DEFAULT_LOCATION;
}
// --- order store ---------------------------------------------------------
fs.mkdirSync(DATA_DIR, { recursive: true });
let orders = [];
@ -132,7 +154,7 @@ async function handle(req, res) {
const ids = Object.keys(items);
if (!ids.length) return json(res, 400, { error: 'cart is empty' });
const stand = String(b.stand || DEFAULT_STAND).trim().slice(0, 40) || DEFAULT_STAND;
const standLocation = String(b.standLocation || DEFAULT_LOCATION).trim().slice(0, 80);
const standLocation = String(b.standLocation || locationFor(stand)).trim().slice(0, 80);
const order = {
code: makeCode(),
status: 'PREPARING',