from pydantic import BaseModel, Field from typing import List, Dict, Literal, Optional no_keywords = 25 class SuggestedSearchQueries(BaseModel): queries: List[str] = Field( ..., title="List of suggested search queries", min_items=1, max_items=no_keywords, ) # ==== Pydantic models للبنية النهائية ==== class Subtopic(BaseModel): title: str description: str = "" queries: List[str] = Field(..., min_items=1, max_items=3) class Topic(BaseModel): topic_name: str subtopics: List[Subtopic] class Unit(BaseModel): unit_name: str outcome: str topics: List[Topic] class CourseWithQueries(BaseModel): course_name: str course_audience: str expanded_units: List[Unit]