from datetime import datetime from pydantic import BaseModel class AssignmentCreate(BaseModel): title: str description: str | None = None deadline: datetime | None = None class AssignmentUpdate(BaseModel): title: str | None = None description: str | None = None deadline: datetime | None = None status: str | None = None # open | closed class SubmissionCreate(BaseModel): notes: str | None = None class SubmissionGrade(BaseModel): grade: str feedback: str | None = None class SubmissionOut(BaseModel): id: int assignment_id: int student_id: int student_name: str notes: str | None file_url: str | None file_name: str | None file_type: str | None file_size: int | None grade: str | None feedback: str | None graded_at: datetime | None created_at: datetime updated_at: datetime class AssignmentOut(BaseModel): id: int class_id: int creator_id: int creator_name: str title: str description: str | None deadline: datetime | None attachment_urls: list[str] | None status: str submission_count: int total_members: int my_submitted: bool created_at: datetime updated_at: datetime class AssignmentDetailOut(AssignmentOut): submissions: list[SubmissionOut] | None = None