// Groomsmen: name (lowercase) → last 4 digits of phone number export const GROOMSMEN = { jon: '7506', toph: '8116', hans: '6681', janno: '2809', jt: '3286', Cordero: '0379', // no last name given lester: '8014', nick: '6044', david: '5993', poalo: '9922', // likely "Paolo" justin: '2329', benstewart: '1957', joseph: '4976', francis: '4934', chris: '1584', // Chris Mayor — admin } // Reverse map: last4 → display name export const GROOMSMEN_BY_PIN = Object.fromEntries( Object.entries(GROOMSMEN).map(([name, pin]) => [pin, name]) ) /** * Validate a name + 4-digit PIN combination. * Name must match a key in GROOMSMEN (case-insensitive). * PIN must match that entry's value. */ export function validateGroomsman(name, pin) { const key = name.trim().toLowerCase().replace(/\s+/g, '') const entry = GROOMSMEN[key] if (!entry) return false return entry === pin.trim() } /** * Resolve the canonical display name for a validated groomsman. */ export function getCanonicalName(name) { const key = name.trim().toLowerCase().replace(/\s+/g, '') return GROOMSMEN[key] ? key : name.trim() }