122 lines
4.6 KiB
TypeScript
122 lines
4.6 KiB
TypeScript
export const PRODUCTION_WEBSITE = "https://rockymountainvending.com"
|
|
export const PRODUCTION_HOST = "rockymountainvending.com"
|
|
|
|
const configuredWebsite = PRODUCTION_WEBSITE.replace(/\/+$/, "")
|
|
|
|
/**
|
|
* Centralized SEO and Business Information Configuration
|
|
* Used for NAP consistency, structured data, and SEO metadata
|
|
*/
|
|
|
|
const DEFAULT_PUBLIC_CALL_PHONE = "(435) 233-9668"
|
|
const DEFAULT_PUBLIC_CALL_PHONE_FORMATTED = "+14352339668"
|
|
const DEFAULT_PUBLIC_SMS_PHONE = DEFAULT_PUBLIC_CALL_PHONE
|
|
const DEFAULT_PUBLIC_SMS_PHONE_FORMATTED = DEFAULT_PUBLIC_CALL_PHONE_FORMATTED
|
|
|
|
const publicCallNumber =
|
|
process.env.NEXT_PUBLIC_CALL_PHONE_DISPLAY || DEFAULT_PUBLIC_CALL_PHONE
|
|
const publicCallFormatted =
|
|
process.env.NEXT_PUBLIC_CALL_PHONE_E164 || DEFAULT_PUBLIC_CALL_PHONE_FORMATTED
|
|
const publicSmsNumber =
|
|
process.env.NEXT_PUBLIC_SMS_PHONE_DISPLAY || DEFAULT_PUBLIC_SMS_PHONE
|
|
const publicSmsFormatted =
|
|
process.env.NEXT_PUBLIC_SMS_PHONE_E164 || DEFAULT_PUBLIC_SMS_PHONE_FORMATTED
|
|
|
|
export const businessConfig = {
|
|
name: "Rocky Mountain Vending",
|
|
legalName: "Rocky Mountain Vending LLC",
|
|
shortName: "RockyMountainVending",
|
|
phone: publicCallNumber,
|
|
phoneFormatted: publicCallFormatted,
|
|
phoneUrl: `tel:${publicCallFormatted}`,
|
|
smsUrl: `sms:${publicSmsFormatted}`,
|
|
publicCallNumber,
|
|
publicCallFormatted,
|
|
publicCallUrl: `tel:${publicCallFormatted}`,
|
|
publicSmsNumber,
|
|
publicSmsFormatted,
|
|
publicSmsUrl: `sms:${publicSmsFormatted}`,
|
|
email: "info@rockymountainvending.com",
|
|
website: configuredWebsite,
|
|
description:
|
|
"Rocky Mountain Vending provides free vending machine placement for qualifying Utah businesses, machine sales, repairs, and ongoing service across Salt Lake, Davis, and Utah counties.",
|
|
category: "Vending machine supplier",
|
|
openingDate: "2019-11-01",
|
|
// Service-only business (no physical address)
|
|
hasPhysicalLocation: false,
|
|
serviceType: "Service",
|
|
} as const
|
|
|
|
export function normalizeHost(host: string | null | undefined): string {
|
|
if (!host) {
|
|
return ""
|
|
}
|
|
|
|
return host.toLowerCase().replace(/:\d+$/, "")
|
|
}
|
|
|
|
export function isProductionHost(host: string | null | undefined): boolean {
|
|
const normalized = normalizeHost(host)
|
|
return normalized === PRODUCTION_HOST || normalized === `www.${PRODUCTION_HOST}`
|
|
}
|
|
|
|
export const serviceAreas = [
|
|
{ city: "Ogden", state: "UT", country: "USA" },
|
|
{ city: "Provo", state: "UT", country: "USA" },
|
|
{ city: "Sandy", state: "UT", country: "USA" },
|
|
{ city: "Draper", state: "UT", country: "USA" },
|
|
{ city: "Layton", state: "UT", country: "USA" },
|
|
{ city: "Murray", state: "UT", country: "USA" },
|
|
{ city: "Clinton", state: "UT", country: "USA" },
|
|
{ city: "Midvale", state: "UT", country: "USA" },
|
|
{ city: "Herriman", state: "UT", country: "USA" },
|
|
{ city: "Holladay", state: "UT", country: "USA" },
|
|
{ city: "Riverton", state: "UT", country: "USA" },
|
|
{ city: "Syracuse", state: "UT", country: "USA" },
|
|
{ city: "Millcreek", state: "UT", country: "USA" },
|
|
{ city: "Clearfield", state: "UT", country: "USA" },
|
|
{ city: "West Jordan", state: "UT", country: "USA" },
|
|
{ city: "South Jordan", state: "UT", country: "USA" },
|
|
{ city: "Salt Lake City", state: "UT", country: "USA" },
|
|
{ city: "South Salt Lake", state: "UT", country: "USA" },
|
|
{ city: "West Valley City", state: "UT", country: "USA" },
|
|
{ city: "Cottonwood Heights", state: "UT", country: "USA" },
|
|
] as const
|
|
|
|
export const businessHours = {
|
|
monday: { open: "08:00", close: "17:00", closed: false },
|
|
tuesday: { open: "08:00", close: "17:00", closed: false },
|
|
wednesday: { open: "08:00", close: "17:00", closed: false },
|
|
thursday: { open: "08:00", close: "17:00", closed: false },
|
|
friday: { open: "08:00", close: "17:00", closed: false },
|
|
saturday: { open: null, close: null, closed: true },
|
|
sunday: { open: null, close: null, closed: true },
|
|
} as const
|
|
|
|
export const socialProfiles = {
|
|
linkedin: "https://www.linkedin.com/company/rocky-mountain-vending-llc",
|
|
facebook: "https://www.facebook.com/RealRockyMountainVending",
|
|
youtube: "https://www.youtube.com/channel/UCiaAxaeGBEezZd6BXNIKuYQ",
|
|
twitter: "https://x.com/RMVVending/",
|
|
} as const
|
|
|
|
/**
|
|
* Get service area as formatted string (e.g., "Ogden, UT, USA")
|
|
*/
|
|
export function formatServiceArea(area: (typeof serviceAreas)[number]): string {
|
|
return `${area.city}, ${area.state}, ${area.country}`
|
|
}
|
|
|
|
/**
|
|
* Get all service areas as formatted strings
|
|
*/
|
|
export function getAllServiceAreasFormatted(): string[] {
|
|
return serviceAreas.map(formatServiceArea)
|
|
}
|
|
|
|
/**
|
|
* Get service area cities only
|
|
*/
|
|
export function getServiceAreaCities(): string[] {
|
|
return serviceAreas.map((area) => area.city)
|
|
}
|