import React from 'react';
import type { Metadata } from 'next';
import SeoJsonLd from '@/components/SeoJsonLd';
import { organizationSchema, websiteSchema, softwareApplicationSchema, reviewSchema, aggregateRatingSchema } from '@/lib/schema';
import { getFeaturedTestimonials, getAggregateRating } from '@/lib/testimonial-data';
import HomePageClient from '@/components/marketing/HomePageClient';

function truncateAtWord(text: string, maxLength: number): string {
  if (text.length <= maxLength) return text;
  const truncated = text.slice(0, maxLength);
  const lastSpace = truncated.lastIndexOf(' ');
  return lastSpace > 0 ? truncated.slice(0, lastSpace) : truncated;
}

export async function generateMetadata(): Promise<Metadata> {
  const title = truncateAtWord('QR Master: Dynamic QR Generator', 60);
  const description = truncateAtWord(
    'Create dynamic QR codes, track scans, and scale campaigns with secure analytics. Free advanced features, bulk generation, and custom branding available.',
    160
  );

  return {
    title,
    description,
    keywords: ['qr generator', 'free qr code generator', 'custom qr code generator', 'qr code maker', 'online qr code generator', 'dynamic qr code', 'qr code with logo'],
    alternates: {
      canonical: 'https://www.qrmaster.net/',
      languages: {
        'x-default': 'https://www.qrmaster.net/',
        en: 'https://www.qrmaster.net/',
        de: 'https://www.qrmaster.net/qr-code-erstellen',
      },
    },
    openGraph: {
      title,
      description,
      url: 'https://www.qrmaster.net/',
      type: 'website',
      images: [
        {
          url: 'https://www.qrmaster.net/og-image.png',
          width: 1200,
          height: 630,
          alt: 'QR Master - Dynamic QR Code Generator and Analytics Platform',
        },
      ],
    },
    twitter: {
      title,
      description,
    },
  };
}

export default function HomePage() {
  const featuredTestimonials = getFeaturedTestimonials();
  const aggregateRating = getAggregateRating();
  const reviewSchemas = featuredTestimonials.map(t => reviewSchema(t));

  return (
    <>
      <SeoJsonLd data={[
        websiteSchema(),
        organizationSchema(),
        softwareApplicationSchema(aggregateRating),
        aggregateRatingSchema(aggregateRating),
        ...reviewSchemas
      ]} />

      {/* Server-rendered SEO content for crawlers */}
      <div className="sr-only" aria-hidden="false">

        <p>
          Create professional QR codes for your business with QR Master. Our dynamic QR code generator
          lets you create trackable QR codes, edit destinations anytime, and view detailed analytics.
          Perfect for restaurants, retail, events, and marketing campaigns.
        </p>
        <p>
          Features include: Dynamic QR codes with real-time tracking, bulk QR code generation from Excel/CSV,
          custom branding with colors and logos, advanced scan analytics showing device types and locations,
          vCard QR codes for digital business cards, restaurant menu QR codes, and a free{' '}
          <a href="/tools/barcode-generator">barcode generator</a> for EAN-13, UPC-A, and Code 128 barcodes.
        </p>
        <p>
          Start free with 3 active dynamic QR codes and unlimited static codes. Upgrade to Pro for 50 codes
          with advanced analytics, or Business for 500 codes with bulk creation and priority support.
        </p>
      </div>

      <HomePageClient />
    </>
  );
}
