import {cache} from 'react';
import styles from '@/components/algebra-curriculum/Resources.module.css';
import { notFound } from 'next/navigation';
import LessonPage, {lessonMetadata} from '@/components/algebra-curriculum/LessonPage';
import {topics,findTopic} from '@/data/algebra/course.mjs';
import pool from '@/lib/db';
import {loadPlatformLesson,publishedCurriculumUnits} from '@/lib/algebraPlatformRepository';
export const dynamic='force-dynamic';
const publishedLesson=cache(loadPlatformLesson);
async function curriculumTopic(path){const known=findTopic(path);if(known)return known;const [rows]=await pool.query('SELECT topic_key AS `key`,title,path,unit_id AS unitId FROM cv_algebra_topic WHERE path=?',[path]);return rows[0]||null;}

import SeoClusterArticle, { buildSeoArticleMetadata } from '@/components/seo/SeoClusterArticle';
import {
  ALGEBRA_GROWTH_ARTICLES,
  ALGEBRA_RESOURCE_ARTICLES,
  getAlgebraResourceArticleBySegments,
} from '@/data/seo/algebraGrowthArticles';

export function generateStaticParams() {
  return [...ALGEBRA_RESOURCE_ARTICLES,...topics].map((article) => ({
    slug: article.path.replace('/algebra-1/', '').split('/'),
  }));
}

export async function generateMetadata({ params }) {
  const { slug } = await params;
  const segments = Array.isArray(slug) ? slug : [slug];
  const topic=await curriculumTopic(`/algebra-1/${segments.join('/')}`);
  if(topic){const lesson=await publishedLesson(topic.key);return lesson?lessonMetadata(lesson,lesson):{};}
  const article = getAlgebraResourceArticleBySegments(segments);
  return article ? buildSeoArticleMetadata(article) : {};
}

export default async function AlgebraResourcePage({ params }) {
  const { slug } = await params;
  const segments = Array.isArray(slug) ? slug : [slug];
  const topic=await curriculumTopic(`/algebra-1/${segments.join('/')}`);
  if(topic){const lesson=await publishedLesson(topic.key);if(!lesson)notFound();const navigation=(await publishedCurriculumUnits()).flatMap(u=>u.topics);return <LessonPage topic={lesson} lesson={lesson} navigation={navigation}/>;}
  const article = getAlgebraResourceArticleBySegments(segments);

  if (!article) notFound();

  return <div className={styles.legacy}><SeoClusterArticle article={article} allArticles={ALGEBRA_GROWTH_ARTICLES} /></div>;
}
