Spaces:
Runtime error
Runtime error
| from pydantic import BaseModel, Field | |
| from typing import List, Optional | |
| from datetime import datetime | |
| from bson import ObjectId | |
| class QuestionConfig(BaseModel): | |
| type: str = Field(..., description="mcq, short_answer, long_answer, true_false") | |
| count: int = Field(..., ge=1) | |
| marksPerQuestion: int = Field(..., ge=1) | |
| difficulty: str = Field(..., description="easy, medium, hard") | |
| class AssignmentInput(BaseModel): | |
| title: str = Field(..., max_length=200) | |
| subject: str = Field(..., max_length=100) | |
| grade: str = Field(..., max_length=20) | |
| schoolName: str = Field(..., max_length=200) | |
| dueDate: str | |
| totalMarks: int = Field(..., ge=1) | |
| duration: int = Field(..., ge=1) | |
| questionConfigs: List[QuestionConfig] = Field(..., min_length=1) | |
| additionalInstructions: Optional[str] = Field(None, max_length=2000) | |
| uploadedFileContent: Optional[str] = None | |
| class QuestionSubSchema(BaseModel): | |
| id: str | |
| text: str | |
| type: str | |
| difficulty: str | |
| marks: int | |
| options: Optional[List[str]] = None | |
| answerKey: str | |
| class SectionSubSchema(BaseModel): | |
| id: str | |
| title: str | |
| instruction: str | |
| questionType: str | |
| questions: List[QuestionSubSchema] | |
| totalMarks: int | |
| class GeneratedPaperSubSchema(BaseModel): | |
| id: str | |
| assignmentId: str | |
| schoolName: str | |
| subject: str | |
| grade: str | |
| duration: int | |
| totalMarks: int | |
| sections: List[SectionSubSchema] | |
| createdAt: str | |
| class AssignmentDocument(BaseModel): | |
| id: Optional[str] = Field(None, alias="_id") | |
| input: AssignmentInput | |
| status: str = Field(default="pending", description="pending, processing, completed, failed") | |
| jobId: Optional[str] = None | |
| result: Optional[GeneratedPaperSubSchema] = None | |
| error: Optional[str] = None | |
| createdAt: Optional[datetime] = None | |
| updatedAt: Optional[datetime] = None | |
| class Config: | |
| populate_by_name = True | |
| json_encoders = {ObjectId: str} | |