from pydantic import BaseModel
from typing import Optional, List

# 1. 커리큘럼 시작 요청
class StartCurriculumRequest(BaseModel):
    session_id: str = "sess_1yjx2z3791770012471967" # 기본값 하드코딩

# 2. 대화 요청 (유저 답변 분석용)
class ChatCurriculumRequest(BaseModel):
    session_id: str
    user_message: str
    current_step: str # 'START', 'YOUTUBE', 'PPT' 등 현재 단계 구분
    item_id: Optional[int] = None
    history: Optional[List[dict]] = None

# 3. 퀴즈 데이터 요청
class GetQuizRequest(BaseModel):
    session_id: str
    item_id: int
    q_num: int = 1

# 4. 퀴즈 정답 확인 요청
class CheckQuizRequest(BaseModel):
    question_text: str
    user_answer: str
    correct_answer: str  # [추가] 정답 데이터
    explanation: str     # [추가] 해설 데이터

class CheckFEQuizRequest(BaseModel):
    question_number: str
    user_answer: str

class GenerateJournalRequest(BaseModel):
    session_id: str
    item_id: int
    conversation_history: List[dict]

class GetJournalRequest(BaseModel):
    session_id: str
    item_id: int