// Single source of truth for business facts (from the owner inputs in PLAN.md). // Update values here rather than hard-coding them in pages. export const SITE_URL = "https://teatatucomputers.com"; export const business = { name: "Te Atatu Computers", ownerName: "John", phone: "021 107 7483", phoneE164: "+64211077483", email: "info@teatatucomputers.com", address: { street: "34 Graham Avenue", suburb: "Te Atatū Peninsula", city: "Auckland", postcode: "0610", country: "NZ", }, hours: "Mon–Fri 9am–6pm. Weekends by appointment.", serviceArea: [ "Te Atatū Peninsula", "Te Atatū South", "Henderson", "Massey", "Lincoln", "Glendene", "Westgate", "Auckland CBD", ], paymentMethods: [ "Cash", "NZ bank transfer", "Contactless Visa, Mastercard and American Express", "Apple Pay, Google Pay and Samsung Pay", "Bitcoin", ], prices: { diagnostic: "$35", hourly: "$35", }, rating: { value: "4.8", count: 4 }, testimonials: [ { name: "Irwin", quote: "John is a super star! He fixed my laptop for a reasonable price. I highly recommend him!", }, { name: "Marlies", quote: "Very happy with the service provided. Very prompt response to my online query and further questions. John knew what he was doing, was professional and helpful. Thank you!", }, ], googleBusinessProfileUrl: "https://share.google/APzXLRzyrqAUldl4Y", googleReviewUrl: "https://g.page/r/CYkJobPXq4IpEAE/review", facebookUrl: "https://www.facebook.com/profile.php?id=61571509018351", }; export const BUSINESS_ID = `${SITE_URL}/#business`; export const links = { tel: `tel:${business.phoneE164}`, sms: `sms:${business.phoneE164}`, whatsapp: `https://wa.me/${business.phoneE164.slice(1)}`, email: `mailto:${business.email}`, }; // Every public route. Used by the sitemap; add new pages here. export const routes = [ { path: "/", priority: 1 }, { path: "/services/computer-repair", priority: 0.8 }, { path: "/services/computer-upgrades", priority: 0.8 }, { path: "/services/virus-removal", priority: 0.8 }, { path: "/services/it-support", priority: 0.8 }, { path: "/pricing", priority: 0.8 }, { path: "/business", priority: 0.7 }, { path: "/windows-10", priority: 0.7 }, { path: "/about", priority: 0.6 }, { path: "/contact", priority: 0.6 }, ]; // Full price list, shown on /pricing. Labour prices; parts are extra. export const priceList = [ { group: "Repairs", items: [ { item: "Diagnosis", price: "$35" }, { item: "Laptop screen replacement", price: "from $35 + the screen" }, { item: "Battery, charging port or keyboard", price: "from $35 + parts" }, { item: "Other repairs (labour)", price: "$35 an hour" }, ], }, { group: "Upgrades & Windows", items: [ { item: "SSD upgrade", price: "from $45 + the drive" }, { item: "Windows reinstall", price: "from $45" }, { item: "Windows 11 compatibility check", price: "Free" }, { item: "RAM, graphics card and Windows 11 upgrades", price: "from $35 + parts" }, { item: "Custom PC build (labour)", price: "from $35" }, ], }, { group: "Viruses, data & support", items: [ { item: "Virus and malware removal", price: "from $35" }, { item: "Moving files to a new computer", price: "from $45" }, { item: "New computer setup", price: "from $35" }, { item: "Remote support", price: "$35 an hour" }, { item: "Onsite support", price: "$35 an hour + travel" }, { item: "Small business IT plan", price: "$65 a month" }, ], }, ]; export const businessPlan = { price: "$65", hours: 2, includes: [ "2 hours of remote or onsite support every month", "Extra time at the normal $35 an hour", "No lock-in contract. Cancel any time.", ], terms: "Unused hours don't roll over to the next month. Onsite visits have a travel fee based on distance.", }; // Builds per-page metadata: title, description, canonical, Open Graph and Twitter. export function pageMetadata({ title, description, path }) { return { title, description, alternates: { canonical: path }, openGraph: { title, description, url: path, siteName: business.name, locale: "en_NZ", type: "website", images: [ { url: "/og-image.png", width: 1200, height: 630, alt: business.name, }, ], }, twitter: { card: "summary_large_image", title, description, images: ["/og-image.png"], }, }; } export function localBusinessSchema() { const { address } = business; return { "@context": "https://schema.org", "@type": "ComputerRepairService", "@id": BUSINESS_ID, name: business.name, url: `${SITE_URL}/`, telephone: business.phoneE164, email: business.email, logo: `${SITE_URL}/logo.png`, image: `${SITE_URL}/og-image.png`, address: { "@type": "PostalAddress", streetAddress: address.street, addressLocality: address.suburb, addressRegion: address.city, postalCode: address.postcode, addressCountry: address.country, }, areaServed: business.serviceArea.map((name) => ({ "@type": "Place", name: `${name}, Auckland`, })), openingHoursSpecification: [ { "@type": "OpeningHoursSpecification", dayOfWeek: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], opens: "09:00", closes: "18:00", }, ], priceRange: "$", currenciesAccepted: "NZD", paymentAccepted: business.paymentMethods.join(", "), hasMap: business.googleBusinessProfileUrl, sameAs: [business.googleBusinessProfileUrl, business.facebookUrl], }; } export function serviceSchema({ name, description, path, areas = business.serviceArea, }) { return { "@context": "https://schema.org", "@type": "Service", name, serviceType: name, description, url: `${SITE_URL}${path}`, provider: { "@id": BUSINESS_ID }, areaServed: areas.map((area) => ({ "@type": "Place", name: `${area}, Auckland`, })), }; } export function faqSchema(faqs) { return { "@context": "https://schema.org", "@type": "FAQPage", mainEntity: faqs.map(({ question, answer, list }) => ({ "@type": "Question", name: question, acceptedAnswer: { "@type": "Answer", text: list ? `${answer} ${list.join("; ")}.` : answer, }, })), }; }