from abc import ABC, abstractmethod from typing import Dict from fastapi import BackgroundTasks from fastapi.datastructures import FormData class IGradeController(ABC): @abstractmethod async def grade_writing_task( self, task: int, dto: any, background_tasks: BackgroundTasks ): pass @abstractmethod async def grade_speaking_task( self, task: int, form: FormData, background_tasks: BackgroundTasks ): pass @abstractmethod async def grade_short_answers(self, data: Dict): pass @abstractmethod async def grading_summary(self, data: Dict): pass