import { redirect } from "next/navigation";
import {
  isUserAuthenticated,
  getServerUserEvaluation,
  getServerSkillCategories,
  getServerTeams,
} from "@/lib/server-auth";
import {
  EvaluationClientWrapper,
  WelcomeEvaluationScreen,
} from "@/components/evaluation";
import { SkillEvaluation } from "@/components/skill-evaluation";

export default async function EvaluationPage() {
  // Vérifier l'authentification
  const isAuthenticated = await isUserAuthenticated();

  // Si pas de cookie d'authentification, rediriger vers login
  if (!isAuthenticated) {
    redirect("/login");
  }

  // Charger les données côté serveur
  const [userEvaluation, skillCategories, teams] = await Promise.all([
    getServerUserEvaluation(),
    getServerSkillCategories(),
    getServerTeams(),
  ]);

  // Si pas d'évaluation, afficher l'écran d'accueil évaluation
  if (!userEvaluation) {
    return <WelcomeEvaluationScreen teams={teams} />;
  }

  return (
    <EvaluationClientWrapper userEvaluation={userEvaluation} teams={teams}>
      <div>
        {/* Skill Evaluation */}
        {skillCategories.length > 0 &&
          userEvaluation.evaluations.length > 0 && (
            <SkillEvaluation
              categories={skillCategories}
              evaluations={userEvaluation.evaluations}
            />
          )}
      </div>
    </EvaluationClientWrapper>
  );
}
