// src/app/(root)/packages/page.tsx
import { Metadata } from 'next';
import PackagesClient from './PackagesClient';

export const metadata: Metadata = {
  title: 'Guest Posting Packages | OutreachExpert',
  description: 'Choose from our range of guest posting packages. Get high-quality backlinks from authoritative websites with our standard, special niche, and custom packages.',
  keywords: 'guest posting packages, backlink packages, SEO packages, niche edit packages, guest post services',
  openGraph: {
    title: 'Guest Posting Packages | OutreachExpert',
    description: 'Choose the perfect package for your guest posting needs. Get high-quality backlinks from authoritative websites.',
    type: 'website',
    url: `${process.env.NEXT_PUBLIC_APP_URL}/packages`,
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Guest Posting Packages | OutreachExpert',
    description: 'Choose the perfect package for your guest posting needs.',
  },
};

async function fetchPackages() {
  try {
    const baseUrl = process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000';
    const response = await fetch(`${baseUrl}/api/frontend/allpackages`);
    
    if (!response.ok) {
      throw new Error('Failed to fetch packages');
    }
    
    const data = await response.json();
    
    if (data.success) {
      return data.packages;
    } else {
      throw new Error(data.error || 'Failed to fetch packages');
    }
  } catch (error) {
    console.error('Error fetching packages:', error);
    return null;
  }
}

export default async function PackagesPage() {
  const packages = await fetchPackages();
  
  return <PackagesClient initialPackages={packages || []} />;
}