---
import GuideContent from '../../components/Guide/GuideContent.astro';
import GuideHeader from '../../components/GuideHeader.astro';
import BaseLayout from '../../layouts/BaseLayout.astro';
import { getAllGuides, type GuideFileType } from '../../lib/guide';
import { getOpenGraphImageUrl } from '../../lib/open-graph';

export interface Props {
  guide: GuideFileType;
}

export async function getStaticPaths() {
  const guides = (await getAllGuides()).filter(
    (guide) => !guide.frontmatter.excludedBySlug,
  );

  return guides.map((guide) => ({
    params: { guideId: guide.id },
    props: { guide },
  }));
}

const { guideId } = Astro.params;
const { guide } = Astro.props;
const { frontmatter: guideData, author } = guide;

const ogImageUrl = getOpenGraphImageUrl({
  group: 'guides',
  resourceId: guideId,
});
---

<BaseLayout
  title={guideData.seo.title}
  description={guideData.seo.description}
  permalink={`/guides/${guideId}`}
  canonicalUrl={guideData.canonicalUrl}
  ogImageUrl={ogImageUrl}
>
  <GuideHeader guide={guide} />
  <GuideContent guide={guide!} />
</BaseLayout>