import { getPartyById, getPartyIds } from '@/lib/db/parties';
import PartyBasicInfo from '@/modules/parties/component/PartyBasicInfo';
import PartyContact from '@/modules/parties/component/PartyContact';
import PartyDetailsBanner from '@/modules/parties/component/PartyDetailsBanner';
import PartyElectionResults from '@/modules/parties/component/PartyElectionResults';
import PartyIdeologyHistory from '@/modules/parties/component/PartyIdeologyHistory';
import PartyKeyPeople from '@/modules/parties/component/PartyKeyPeople';
import PartyManifesto from '@/modules/parties/component/PartyManifesto';
import { notFound } from 'next/navigation';

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

export async function generateStaticParams() {
  const partyIds = getPartyIds();
  return partyIds.map((id) => ({ id }));
}

export default async function PartyDetailsPage({ params }: PartyDetailsPageProps) {
  const { id } = await params;
  const party = getPartyById(id);

  if (!party) {
    notFound();
  }

  return (
    <>
      <PartyDetailsBanner party={party} />

      {/* Party Details Content */}
      <div className="max-w-7xl mx-auto px-3 sm:px-4 lg:px-8 py-8 sm:py-12">
        <div className="grid grid-cols-1 md:grid-cols-3 gap-6 sm:gap-8">
          {/* Left Sidebar Info */}
          <div className="md:col-span-1 space-y-6">
            <PartyBasicInfo party={party} />
            <PartyContact party={party} />
          </div>

          {/* Main Content */}
          <div className="md:col-span-2 space-y-8">
            <PartyIdeologyHistory party={party} />
            <PartyKeyPeople party={party} />
            <PartyManifesto party={party} />
            <PartyElectionResults party={party} />
          </div>
        </div>
      </div>
    </>
  );
}
