from typing import Optional from pydantic import BaseModel, Field from datetime import datetime from .base import PyObjectId from .question_item_entity import QuestionItemEntity class QuizEntity(BaseModel): id: Optional[PyObjectId] = Field(alias="_id") author_id: Optional[str] = None title: str description: Optional[str] = None is_public: bool = False date: Optional[datetime] = None total_quiz: Optional[int] = 0 limit_duration: Optional[int] = 0 question_listings: Optional[list[QuestionItemEntity]] = [] class Config: arbitrary_types_allowed = True populate_by_name = True json_encoders = {PyObjectId: str}