import { TripAPI } from '@/lib/api';
import { DestinationAPI } from '@/lib/api';
import { CelebrationAPI } from '@/lib/api';
import { AgentAPI } from '@/lib/api';

export default async function sitemap() {
    // Fetch your data
    const trips = await TripAPI.getTripList();
    const destinations = await DestinationAPI.getDestinationList();
    const celebrations = await CelebrationAPI.getCelebrationList();
    const agentsResponse = await AgentAPI.getAgentList();
    
    // Filter agents to only include those with agent_status "AC"
    const agents = agentsResponse.agents ? agentsResponse.agents.filter(agent => agent.agent_status === 'AC') : [];
    
    // Base URLs
    const baseUrl = 'https://www.hawirethiopia.com';
    
    // Static pages
    const staticPages = [
      '',
      '/about',
      '/trip',
      '/destination',
      '/celebration',
      '/agent',
      '/contact',
    ].map(route => ({
      url: `${baseUrl}${route}`,
      lastModified: new Date().toISOString(),
      changeFrequency: 'monthly',
      priority: route === '' ? 1.0 : 0.8,
    }));
    
    // Dynamic pages
    const tripPages = trips.map(trip => ({
      url: `${baseUrl}/trip/${trip.slug}`,
      lastModified: trip.updatedAt,
      changeFrequency: 'monthly',
      priority: 0.7,
    }));

    const destinationPages = destinations.map(destination => ({
        url: `${baseUrl}/destination/${destination.slug}`,
        lastModified: destination.updatedAt,
        changeFrequency: 'monthly',
        priority: 0.7,
      }));

      const celebrationPages = celebrations.map(celebration => ({
        url: `${baseUrl}/celebration/${celebration.slug}`,
        lastModified: celebration.updatedAt,
        changeFrequency: 'monthly',
        priority: 0.7,
      }));

      const agentPages = agents.map(agent => ({
        url: `${baseUrl}/agent/${agent.slug}`,
        lastModified: agent.updatedAt,
        changeFrequency: 'monthly',
        priority: 0.7,
      }));
    
    return [...staticPages, ...tripPages, ...destinationPages, ...celebrationPages, ...agentPages];
  }