'use client';
import { useParams } from 'next/navigation';
import { useState, useEffect } from 'react';
import FigmaSelectedLessonPage from '../../FigmaSelectedLessonPage';
import apiService from '@/app/lib/apiService';

export default function ContinueLessonPage() {
  const params = useParams();
  const [subjectTitle, setSubjectTitle] = useState<string>('');
  const [lectureTitle, setLectureTitle] = useState<string>('');
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState<string | null>(null);

  useEffect(() => {
    const fetchLessonData = async () => {
      if (!params?.lessonId) return;

      try {
        setLoading(true);
        setError(null);

        // 1. 강의 정보 가져오기 - getLecture 실패 시 getLectures로 재시도
        let lectureData: any = null;
        try {
          const lectureResponse = await apiService.getLecture(params.lessonId as string);
          lectureData = lectureResponse.data;
        } catch (lectureErr) {
          console.log('getLecture 실패, getLectures로 재시도:', lectureErr);
          // getLecture 실패 시 getLectures로 재시도
          try {
            const listResponse = await apiService.getLectures();
            let lectures: any[] = [];

            if (Array.isArray(listResponse.data)) {
              lectures = listResponse.data;
            } else if (listResponse.data && typeof listResponse.data === 'object') {
              lectures = listResponse.data.items ||
                listResponse.data.lectures ||
                listResponse.data.data ||
                listResponse.data.list ||
                [];
            }

            lectureData = lectures.find((l: any) => 
              String(l.id || l.lectureId) === String(params.lessonId)
            );
          } catch (listErr) {
            console.error('getLectures 실패:', listErr);
          }
        }

        if (lectureData) {
          // 강의 제목 설정
          const title = lectureData.title || lectureData.lectureName || '';
          setLectureTitle(title);

          // 2. 과목 정보 가져오기
          const subjectId = lectureData.subjectId || lectureData.subject_id;
          if (subjectId) {
            try {
              const subjectsResponse = await apiService.getSubjects();
              let subjectsData: any[] = [];

              if (Array.isArray(subjectsResponse.data)) {
                subjectsData = subjectsResponse.data;
              } else if (subjectsResponse.data && typeof subjectsResponse.data === 'object') {
                subjectsData = subjectsResponse.data.items ||
                  subjectsResponse.data.courses ||
                  subjectsResponse.data.data ||
                  subjectsResponse.data.list ||
                  subjectsResponse.data.subjects ||
                  subjectsResponse.data.subjectList ||
                  [];
              }

              // subjectId로 과목 찾기
              const subject = subjectsData.find((s: any) => 
                String(s.id || s.subjectId) === String(subjectId)
              );

              if (subject) {
                const subjectName = subject.title || subject.subjectName || subject.name || '';
                setSubjectTitle(subjectName);
              }
            } catch (subjectsErr) {
              console.error('과목 정보 조회 실패:', subjectsErr);
              // 과목 정보 조회 실패해도 강의는 표시
            }
          }
        }
      } catch (err) {
        console.error('강의 정보 조회 실패:', err);
        // 에러가 발생해도 기본값으로 표시
      } finally {
        setLoading(false);
      }
    };

    fetchLessonData();
  }, [params?.lessonId]);

  // 로딩 중이거나 에러가 있어도 기본값으로 페이지 표시 (영상은 더미 데이터 사용)
  return (
    <FigmaSelectedLessonPage 
      subjectTitle={subjectTitle || undefined}
      lectureTitle={lectureTitle || undefined}
    />
  );
}


