export type FeaturedProperty = { slug: string; name: string; area: string; summary: string; sleeps: number; bedrooms: number; bathrooms: number; priceFrom: string; tags: string[]; }; export type Testimonial = { quote: string; author: string; location: string; }; export type ContentSection = { title: string; paragraphs: string[]; bullets?: string[]; }; export type ContentPage = { slug: string; title: string; intro: string; seoTitle: string; seoDescription: string; sections: ContentSection[]; }; export const site = { name: 'Holiday Property Booking', tagline: 'Direct holiday stays with visible availability and no guesswork.', description: 'Browse holiday homes, check the essentials, and move from inspiration to enquiry without losing the thread.', contact: { email: 'hello@example.com', phone: '+44 20 7946 0123', area: 'North Devon, UK', }, highlights: [ 'Public browsing and search', 'Live availability and pricing rules', 'Stripe checkout and confirmation flow', 'Admin-ready data model', ], foundationSteps: ['Project scaffold', 'Environment configuration', 'Database schema', 'App shell', 'Health endpoint'], }; export const primaryNavigation = [ { href: '/', label: 'Home' }, { href: '/about', label: 'About' }, { href: '/faqs', label: 'FAQs' }, { href: '/contact', label: 'Contact' }, ]; export const featuredProperties: FeaturedProperty[] = [ { slug: 'coastal-view-cottage', name: 'Coastal View Cottage', area: 'Clifftop village', summary: 'A bright two-bedroom cottage with sea views, a private terrace, and room to slow down.', sleeps: 4, bedrooms: 2, bathrooms: 2, priceFrom: 'From £185/night', tags: ['Sea views', 'Family-friendly', 'Short breaks'], }, { slug: 'orchard-barn', name: 'Orchard Barn', area: 'Rural retreat', summary: 'Converted barn accommodation with an open-plan living space and easy access to walking trails.', sleeps: 6, bedrooms: 3, bathrooms: 2, priceFrom: 'From £210/night', tags: ['Pets considered', 'Hot tub', 'Long weekends'], }, { slug: 'harbour-house', name: 'Harbour House', area: 'Harbour front', summary: 'A flexible stay for couples or groups, steps from the water and close to local restaurants.', sleeps: 5, bedrooms: 3, bathrooms: 1, priceFrom: 'From £165/night', tags: ['Walkable', 'Town stay', 'Flexible dates'], }, ]; export const locationHighlights = [ { title: 'Coast and countryside', body: 'Choose between cliff paths, harbour towns, and quiet countryside stays within a short drive of each other.', }, { title: 'Simple trip planning', body: 'The public journey is designed to answer the basics early: where the property is, what it sleeps, and how to enquire.', }, { title: 'Stay-led content', body: 'Each property page can carry the practical details guests need, including capacity, amenities, and house rules.', }, ]; export const testimonials: Testimonial[] = [ { quote: 'Everything we needed was clear before we booked, which made planning the trip much easier.', author: 'Sophie M.', location: 'Bristol', }, { quote: 'The property details answered our questions without forcing us to chase for basics.', author: 'Daniel K.', location: 'Manchester', }, ]; export const contentPages: ContentPage[] = [ { slug: 'about', title: 'About Holiday Property Booking', intro: 'Holiday Property Booking is being shaped as a direct, content-led booking site that keeps the browsing experience clear before any payment flow is added.', seoTitle: 'About Holiday Property Booking', seoDescription: 'Learn how the holiday booking site is structured and what the public journey will cover.', sections: [ { title: 'What the site is for', paragraphs: [ 'The public site is intended to help guests browse properties, understand the essentials quickly, and move toward a confident enquiry or booking decision.', 'The implementation is being delivered in slices so each public page is grounded in the approved planning docs instead of being filled with placeholder booking logic too early.', ], }, { title: 'What guests should expect', paragraphs: [ 'The homepage should provide a direct route into the public journey, with feature-led content, clear calls to action, and enough detail to reduce uncertainty.', ], bullets: ['Clear property summaries', 'Practical stay information', 'A readable route to contact and enquiry'], }, ], }, { slug: 'faqs', title: 'Frequently Asked Questions', intro: 'A lightweight content page for the most common questions guests ask before they enquire or book.', seoTitle: 'Holiday Property Booking FAQs', seoDescription: 'Common questions about the booking journey, property information, and how to contact the business.', sections: [ { title: 'When will live availability arrive?', paragraphs: ['Availability and pricing will be added in the dedicated booking and pricing slices that follow this public content work.'], }, { title: 'Can guests still enquire now?', paragraphs: ['Yes. The public experience includes a clear contact route so guests can ask questions before the booking engine is complete.'], }, { title: 'What will content pages cover?', paragraphs: ['About, local area, FAQs, terms and conditions, and privacy pages can all be rendered from the same content-page structure.'], }, ], }, { slug: 'local-area', title: 'Local Area Guide', intro: 'A short editorial page that can be expanded with neighbourhood tips, transport advice, and nearby attractions.', seoTitle: 'Local Area Guide', seoDescription: 'Explore the local area around the featured holiday properties.', sections: [ { title: 'Why area content matters', paragraphs: [ 'Guests often decide based on location first. The content page structure allows the business to explain the setting without overloading the homepage.', ], }, { title: 'What can be added later', paragraphs: ['Walking routes, beaches, restaurants, transport notes, and seasonal advice can all live in this page format.'], }, ], }, { slug: 'terms-and-conditions', title: 'Terms and Conditions', intro: 'A placeholder legal content page that can be replaced with the final terms text when it is approved.', seoTitle: 'Terms and Conditions', seoDescription: 'The terms and conditions content page for Holiday Property Booking.', sections: [ { title: 'How this page is used', paragraphs: [ 'This route exists so the public site can render formal content pages from the same model as editorial pages.', 'The legal copy itself will be finalised later, but the page structure is now ready for it.', ], }, ], }, { slug: 'privacy-policy', title: 'Privacy Policy', intro: 'A structured content page for the privacy policy and future data handling notices.', seoTitle: 'Privacy Policy', seoDescription: 'The privacy policy content page for Holiday Property Booking.', sections: [ { title: 'Why it exists now', paragraphs: [ 'The public content layer needs to support policy pages from the start so the site can grow into a compliant booking flow without reworking the routing model.', ], }, ], }, ]; export function getContentPage(slug: string) { return contentPages.find((page) => page.slug === slug); }