from pydantic import BaseModel, Field from typing import List # =============================== # المستوى الرابع: SubTopic # =============================== class SubTopic(BaseModel): title: str = Field(..., description="عنوان العنوان الفرعي") description: str = Field(..., description="وصف العنوان الفرعي") # =============================== # المستوى الثالث: Topic # =============================== class Topic(BaseModel): topic_name: str = Field(..., description="اسم الموضوع") subtopics: List[SubTopic] = Field(..., description="العناوين الفرعية للموضوع") # =============================== # المستوى الثاني: Unit # =============================== class ExpandedUnit(BaseModel): unit_name: str = Field(..., description="اسم الوحدة") outcome: str = Field(..., description="ناتج التعلم للوحدة") topics: List[Topic] = Field(..., description="موضوعات الوحدة") # =============================== # المستوى الأول: Course # =============================== class CourseContent(BaseModel): course_name: str = Field(..., description="اسم المقرر") course_audience: str = Field(..., description="الفئة المستهدفة من المقرر") expanded_units: List[ExpandedUnit] = Field( ..., description="الوحدات التفصيلية للمقرر" )