30 lines
591 B
Python
30 lines
591 B
Python
from pydantic import BaseModel
|
|
from typing import List, Dict, Union, Any, Optional
|
|
|
|
|
|
class Option(BaseModel):
|
|
id: str
|
|
text: str
|
|
|
|
|
|
class MultipleChoiceQuestion(BaseModel):
|
|
type: str = "multipleChoice"
|
|
id: str
|
|
prompt: str
|
|
variant: str = "text"
|
|
options: List[Option]
|
|
|
|
|
|
class FillBlanksWord(BaseModel):
|
|
type: str = "fillBlanks"
|
|
id: str
|
|
options: Dict[str, str]
|
|
|
|
|
|
Component = Union[MultipleChoiceQuestion, FillBlanksWord, Dict[str, Any]]
|
|
|
|
|
|
class Sheet(BaseModel):
|
|
batch: Optional[int] = None
|
|
components: List[Component]
|