import { CustomerSupportButton } from '@/components/common/CustomerSupportButton';
import { getServerOrgCode } from '@/lib/org';
import StationDetailModule from '@/modules/chargepointModule/detail';
import { chargePointService } from '@/services/chargepoint/chargePointService';
import { organizationService } from '@/services/organization/organizationService';

export async function generateMetadata({ params }: { params: Promise<{ id: string }> }) {
  const { id } = await params;

  try {
    const chargePoint = await chargePointService.getChargePointById(id, { backend: 'v1' });
    if (!chargePoint) {
      console.warn(`Charge point with ID ${id} not found`);
      return {
        title: 'Charge Point Not Found | TIAR',
        description: 'The requested charging station could not be found.',
      };
    }
    return {
      title: `${chargePoint.name} | TIAR`,
      description: `Details for ${chargePoint.name} charging station. Organization: ${chargePoint.organization_code}`,
    };
  } catch (error) {
    console.error('Error generating metadata for charge point:', error);
    return {
      title: 'Charge Point | TIAR',
      description: 'Charging station details',
    };
  }
}

interface PageProps {
  params: Promise<{ id: string }>;
}

export default async function StationDetailPage({ params }: PageProps) {
  const resolvedParams = await params;
  const organizations = await organizationService.fetchByCode(await getServerOrgCode() || '')
  const organization = organizations || null
  return <StationDetailModule params={resolvedParams} organization={organization} />;
};
