25 lines
607 B
Python
25 lines
607 B
Python
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
from datetime import datetime
|
|
from bson import ObjectId
|
|
|
|
class Lesson(BaseModel):
|
|
lesson_name: str
|
|
markdown_lesson_file_link: str
|
|
markdown_prompt_file_name: str
|
|
markdown_score_prompt_file_link: str
|
|
|
|
class Chapter(BaseModel):
|
|
chapter_name: str
|
|
lessons: List[Lesson]
|
|
|
|
class Material(BaseModel):
|
|
_id: ObjectId
|
|
name: str
|
|
description: Optional[str] = None
|
|
teacher_id: str
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
image_url: Optional[str] = None # 封面图片的url
|
|
chapters: List[Chapter]
|