25 lines
728 B
Python
25 lines
728 B
Python
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
|
|
subject: str
|
|
is_public: bool = False
|
|
date: Optional[datetime] = None
|
|
total_quiz: Optional[int] = 0
|
|
limit_duration: Optional[int] = 0
|
|
total_user_playing: int = 0
|
|
question_listings: Optional[list[QuestionItemEntity]] = []
|
|
|
|
class Config:
|
|
arbitrary_types_allowed = True
|
|
populate_by_name = True
|
|
json_encoders = {PyObjectId: str}
|