Plan Your Visit landing page for visit.waterschurch.org
Next.js 16 static export + PHP 8 API for cPanel/Apache hosting. - Location-aware campus finder (IP estimate, optional precise location, ZIP search) - Three-step Plan Your Visit form with separate email/SMS consent - PHP API: validation, anti-spam, rate limiting, SQLite lead store, Mailchimp and Sinch Engage adapters, idempotent retries via cron - Attribution capture (utm_*, gclid/gbraid/wbraid, fbclid, ttclid, twclid) and consent-aware analytics hooks - Vitest and PHP test suites, cPanel deployment script and docs Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Waters Kids information. Age groups and safety facts are taken from
|
||||
* waterschurch.org/about/waters-kids (verified 2026-09-22). Items marked
|
||||
* `placeholder: true` are NOT verified policies and must be confirmed or
|
||||
* removed by Waters Church before launch.
|
||||
*/
|
||||
export const kidsAgeGroups = [
|
||||
{ id: "0-2", label: "Early Development", ages: "0–2 yrs", rooms: "Blue & Purple Rooms" },
|
||||
{ id: "3-5", label: "Preschool & Pre-K", ages: "3–5 yrs", rooms: "Green, Yellow & Orange Rooms" },
|
||||
{ id: "6-10", label: "Elementary", ages: "6–10 yrs", rooms: "Red Room & Ignite" },
|
||||
{ id: "11-13", label: "Middle School & Pre-Teen", ages: "11–13 yrs", rooms: "Activate Youth Group" },
|
||||
] as const;
|
||||
|
||||
export type KidsAgeRangeId = (typeof kidsAgeGroups)[number]["id"] | "14-18";
|
||||
|
||||
/** Age ranges offered in the form (includes high school for planning purposes). */
|
||||
export const childAgeRangeOptions: { value: KidsAgeRangeId; label: string }[] = [
|
||||
{ value: "0-2", label: "0–2" },
|
||||
{ value: "3-5", label: "3–5" },
|
||||
{ value: "6-10", label: "6–10" },
|
||||
{ value: "11-13", label: "11–13" },
|
||||
{ value: "14-18", label: "14–18 (Waters Youth)" },
|
||||
];
|
||||
|
||||
export interface KidsPoint {
|
||||
id: string;
|
||||
title: string;
|
||||
body: string;
|
||||
placeholder?: boolean;
|
||||
}
|
||||
|
||||
export const kidsPoints: KidsPoint[] = [
|
||||
{
|
||||
id: "checkin",
|
||||
title: "Check-in",
|
||||
body:
|
||||
"Head to the Waters Kids check-in area when you arrive. A team member will register your family, print name tags for your kids, and give you a matching security tag for pickup.",
|
||||
placeholder: true,
|
||||
},
|
||||
{
|
||||
id: "safety",
|
||||
title: "Safety & security",
|
||||
body:
|
||||
"Every Waters Kids volunteer passes a background check. Waters Church also employs its own security team, uses a security tag system for check-in and pickup, and can page you during the service if your child needs you.",
|
||||
},
|
||||
{
|
||||
id: "ages",
|
||||
title: "Age groups",
|
||||
body:
|
||||
"Kids are grouped by age from newborn through middle school, with programs running at every service time and location. High schoolers are invited to Waters Youth.",
|
||||
},
|
||||
{
|
||||
id: "arrive",
|
||||
title: "When to arrive",
|
||||
body:
|
||||
"For a relaxed first visit, plan to arrive about 15 minutes before the service starts so check-in isn't rushed.",
|
||||
placeholder: true,
|
||||
},
|
||||
{
|
||||
id: "bring",
|
||||
title: "What to bring",
|
||||
body:
|
||||
"Just your kids. If your little one needs diapers, a bottle, or a snack, label them and hand them to the room leader at check-in.",
|
||||
placeholder: true,
|
||||
},
|
||||
{
|
||||
id: "needs",
|
||||
title: "Special needs & accessibility",
|
||||
body:
|
||||
"If your child has a special need, allergy, or anything the team should know, tell us at check-in or text ahead of your visit. [Waters Church: confirm available accommodations before launch.]",
|
||||
placeholder: true,
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user