feat: adding model
This commit is contained in:
parent
3dec36d511
commit
ccb669c592
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,82 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from typing import List, Dict, Union, Optional
|
||||
|
||||
class ConnectionResponse(BaseModel):
|
||||
status: str = "connected"
|
||||
sid: str
|
||||
|
||||
class JoinRoomRequest(BaseModel):
|
||||
session_code: str = Field(..., description="Unique code for the quiz session")
|
||||
user_id: str = Field(..., description="Unique identifier for the user")
|
||||
|
||||
class RoomMessageResponse(BaseModel):
|
||||
type: str = Field(..., description="Type of room message (join/leave)")
|
||||
message: str
|
||||
room: str
|
||||
argument: Optional[str] = None
|
||||
data: Optional[Dict] = None
|
||||
|
||||
# Question Models
|
||||
class QuestionType:
|
||||
FILL_THE_BLANK = "fill_the_blank"
|
||||
TRUE_FALSE = "true_false"
|
||||
OPTION = "option"
|
||||
|
||||
class QuizQuestion(BaseModel):
|
||||
index: int
|
||||
question: str
|
||||
duration: int
|
||||
type: str = Field(..., description="Type of question: fill_the_blank, true_false, or option")
|
||||
options: Optional[List[str]] = None
|
||||
|
||||
# Answer Submission Models
|
||||
class AnswerSubmissionRequest(BaseModel):
|
||||
session_id: str
|
||||
user_id: str
|
||||
question_index: int
|
||||
answer: Union[str, bool, int]
|
||||
|
||||
class AnswerSubmissionResponse(BaseModel):
|
||||
user_id: str
|
||||
question_index: int
|
||||
answer: Union[str, bool, int]
|
||||
correct: bool
|
||||
|
||||
# Scoring Models
|
||||
class UserScore(BaseModel):
|
||||
correct: int = 0
|
||||
incorrect: int = 0
|
||||
|
||||
class ScoreUpdateResponse(BaseModel):
|
||||
scores: Dict[str, UserScore]
|
||||
|
||||
# Session Management Models
|
||||
class LeaveRoomRequest(BaseModel):
|
||||
session_id: str
|
||||
user_id: str
|
||||
username: Optional[str] = "anonymous"
|
||||
|
||||
class EndSessionRequest(BaseModel):
|
||||
session_id: str
|
||||
user_id: str
|
||||
|
||||
# Messaging Models
|
||||
class SendMessageRequest(BaseModel):
|
||||
session_id: str
|
||||
message: str
|
||||
username: Optional[str] = "anonymous"
|
||||
|
||||
class ReceiveMessageResponse(BaseModel):
|
||||
message: str
|
||||
from_user: str = Field(alias="from")
|
||||
|
||||
# Quiz Flow Models
|
||||
class QuizStartRequest(BaseModel):
|
||||
session_code: str
|
||||
|
||||
class QuizStatusResponse(BaseModel):
|
||||
message: str
|
||||
|
||||
# Error Model
|
||||
class ErrorResponse(BaseModel):
|
||||
message: str
|
Loading…
Reference in New Issue