44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
// 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()
|
|
}
|