hku-class-hub/backend/app/schemas/assignment.py
2026-04-12 11:56:39 +08:00

63 lines
1.3 KiB
Python

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
my_submitted: bool
created_at: datetime
updated_at: datetime
class AssignmentDetailOut(AssignmentOut):
submissions: list[SubmissionOut] | None = None