33 lines
629 B
Python
33 lines
629 B
Python
"""Pydantic request and response models."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class JoinRequest(BaseModel):
|
|
student_id: str = Field(min_length=1, max_length=80)
|
|
name: str = Field(min_length=1, max_length=120)
|
|
|
|
|
|
class AdminLoginRequest(BaseModel):
|
|
password: str
|
|
|
|
|
|
class QuizCreateRequest(BaseModel):
|
|
title: str | None = None
|
|
pool_json: dict[str, Any] | str
|
|
time_limit_default: int | None = None
|
|
|
|
|
|
class SessionCreateRequest(BaseModel):
|
|
quiz_id: int
|
|
|
|
|
|
class SubmitMessage(BaseModel):
|
|
type: str
|
|
question_idx: int
|
|
answer: str
|