31 lines
763 B
Python
31 lines
763 B
Python
from pydantic import BaseModel, Field, PositiveInt
|
|
|
|
|
|
class PictureAsset(BaseModel):
|
|
id: str = Field(min_length=1)
|
|
name: str = Field(min_length=1)
|
|
image_path: str = Field(min_length=1)
|
|
|
|
|
|
class DecompositionRow(BaseModel):
|
|
position: PositiveInt
|
|
whole: PositiveInt
|
|
first_part: PositiveInt
|
|
second_part: PositiveInt
|
|
picture: PictureAsset
|
|
has_answer_boxes: bool = True
|
|
|
|
|
|
class ComposeAndDecomposeNumbersProblem(BaseModel):
|
|
instructions: str = "Compón y descompón el número."
|
|
whole: PositiveInt
|
|
picture: PictureAsset
|
|
rows: list[DecompositionRow]
|
|
|
|
|
|
class ComposeAndDecomposeNumbersRequest(BaseModel):
|
|
picture: PictureAsset
|
|
whole: PositiveInt = 10
|
|
randomize_rows: bool = False
|
|
seed: int | None = None
|